Olá pessoal… sei que já existe muita informação neste fórum sobre Fibonacci, já achei o código que funciona corretamente, entretanto gostaria de saber porque o código abaixo NÃO funciona adequadamente.
public static void main(String args[]) {
int n = 0;
while(n<10){
if(n == 0 || n == 1){
int fibonacci = n;
System.out.print(fibonacci+" ");
n += 1;
} else{
int fibonacci = (n - 1) + (n - 2);
System.out.print(fibonacci+" ");
n += 1;
}
}
}
o código imprime >>> 0 1 1 3 5 7 9 11 13 15
o que está errado…
O código abaixo trabalha perfeitamente e imprime >>> 0 1 1 2 3 5 8 13 21 34
public static int calcular(int n) {
if (n == 0 || n == 1)
return n;
else
return calcular(n - 1) + calcular(n - 2);
}
public static void main(String[] args) {
for (int x = 0; x < 10; x++) { // Aqui pego apenas os 15 primeiros números da série
int y = Fibonacci.calcular(x);
System.out.print(y+" ");
}
}
Sei que estou comentendo um erro de lógica de programação mas eu não consigo ver
o problema do primeiro código! to cego! Me ajudem!
Obrigado!
