e aí abymaelll, blz !!!
Melhor algoritmo é aquele que realiza a sua tarefa em menos tempo e processamento da máquina, para se chegar nesse ponto é necessário ir aprimorando um algoritmo já existente, diminuindo o número de variáveis, testes mais precisos, entre outras coisas…, e quanto ao fibonacci este que vc desenvolveu é o mais tradicional, tem outras opções, como usar um Array, recursão etc, etc…, para alterar este usando duas variáveis, vc deverá fazer duas contas dentro do laço:
[code]fib = 0, fib1 = 1;
fib = fib + fib1;
fib1= fib1 + fib;
[/code]
Cada soma será responsável pelo próximo valor da série, … ok ???
abraço
public static void main( String[] args ) {
fibonacci( 10 );
}
public static void fibonacci( int quantidade ) {
int n1 = 0;
int n2 = 1;
for ( int i = 0; i < quantidade; i++ ) {
System.out.println( n1 );
n2 = n1 + n2 + ( n1 = n2 ) - n2;
}
}
}[/code]
A cada iteração: n2 recebe a soma de n1 e n2, mas também é feita a atribuição de n2 à n1, que será somada ao resultado. Então para tirar essa soma a mais, subtrai-se n2, que é o valor que n1 vai ter naquele ponto do código.
Ah, respondendo à sua pergunta do melhor algoritmo, você precisa definir o que é ser melhor.
Eu normalmente acho que o melhor algoritmo é aquele que você entende facilmente e que principalmente outras pessoas leiam e entendam. O que não é caso do que eu mostrei
[quote]Ah, outra coisa. ironmarq, seu código está “errado”, pois hora o termo da sequencia está em n1, hora está em n2.
[]'s[/quote]
Eu expliquei mal o código, eu vi a dúvida no fórum e rabisquei rapidinho aqui numa folha e postei, hora o termo está em “fib”, hora em “fib1”, não ficou tão bom quanto o seu rsrs, mas implementei aqui e funcionou legalzinho. Valeu David.