Finacci retornando numero errado

6 respostas
A

tenho serie fibonacci e tenho que imprimir a linha 6, porém apos execução do codigo abaixo tenho como respota o numero 13 e na verdade deveria ser o numero 8.

public class Fibonacci {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int a =1;
        for (int i = 0; i <= 10;)
        {
            System.out.println(i+",");
            i = i + a;
            a = i - a;
        }
        // TODO code application logic here
    }

}
public class Fibonacci {
    

    int CalcularFibonaci(int i ){
        int a =1;
        for (; i <= 10;)
        {
            i = i + a;
            a = i - a;
        }
        return i;
    }
}

6 Respostas

drsmachado

Cara, rodei aqui e está certo.

A

esta rodando, porem tenho que imprimir a posição 6 que deve ter reposta 8, ao executar tenho como respota o valor 13.

drsmachado

Após rodar

for (int i = 0; i <= 10;) {
            System.out.println(i + ", " + a );
            i = i + a;
            a = i - a;
        }

Resposta

0, 1
1, 0
1, 1
2, 1
3, 2
5, 3
8, 5
A

drsmachado:
Após rodar

for (int i = 0; i <= 10;) {
            System.out.println(i + ", " + a );
            i = i + a;
            a = i - a;
        }

Resposta

0, 1 1, 0 1, 1 2, 1 3, 2 5, 3 8, 5

ok, mas eu quero imprimir a posição 6 em outra classe chamando o metodo calcular fibonacci

A

deculpe, coloquei o codigo errado segue agora as 2 classe que estaou tentado umprimir a posição 6, porem tenho como reposta o numero 13

public class Fibonaci {


    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {


        Fibonacci fibo = new Fibonacci();
        
        
        int i = fibo.CalcularFibonaci(6);
        System.out.println(i);
        // TODO code application logic here
    }
}
public class Fibonacci {
    

    int CalcularFibonaci(int i ){
        int a =1;
        for (; i <= 10;)
        {
            i = i + a;
            a = i - a;
        }
        return (i);
    }
}
JM4X

Voce pode fazer de modo recursivo:

public class Fibonaci {  
      
      
        /** 
         * @param args the command line arguments 
         */  
        public static void main(String[] args) {  
      
      
            Fibonacci fibo = new Fibonacci();  
              
              
            int i = fibo.CalcularFibonaci(6);  
            System.out.println(i);  
            // TODO code application logic here  
        }  
    }
public class Fibonacci {  
          
        int CalcularFibonaci(int i ){  
            if (n == 0) return 0;
            if (n == 1) return 1;
            return fibonacci(n-1)+fibonacci(n-2);
        }  
    }
Criado 29 de junho de 2011
Ultima resposta 29 de jun. de 2011
Respostas 6
Participantes 3