Fibonacci

2 respostas
anderson_n3p

Caros amigos, Bom dia.
Mais um pequeno problema ao qual depois de várias tentativas nao consegui resolver sozinho e vim pedir a juda de vocês.
Fiz a sequencia de fibonacci em duas classes deixando o main separado, o programa não apresenta nenhum problema porem gostaria de deixar todo o codigo na mesma classe e que a resposta apresentase toda a sequencia de fibonacci até o determinado numero escolhido.
como no exemplo abaixo:

Valor: 1, 1, 2, 3, 5, 8, 13, 21, 34, ..

segue o código.

public class Fibonacci
   {
   
       public int Fibonacci(int n)
      {	
         if(n <= 1)
         {
            return 1;
         }
         
         else
         {
            return Fibonacci(n-1) + Fibonacci(n-2); 
         }
      
      }
   }
import javax.swing.JOptionPane;

    public class Teste
   {
       public static void main(String args[])
      {
         Fibonacci obj = new Fibonacci();
      
         int n =Integer.parseInt(JOptionPane.showInputDialog("Numero inteiro? "));
      
         obj.Fibonacci(n);
      
         JOptionPane.showMessageDialog(null, "Sequencia: " + obj.Fibonacci(n));	
      
      }
   
   }

Desde ja grato.

2 Respostas

kaique

Uma possível maneira seria alterar a declaração do método Fibonacci (procure seguir as convenções de código e deixe a primeira letra do método em minúsculo), da classe Fibonacci, deixando-o estático. Depois, você cria o método main dentro dessa classe e faz a chamada para o seu método da seguinte maneira:

Fibonacci.fibonacci(n);

[]'s.

pmlm

Podes obter todos os elementos assim:

public static int[] fibonacci(int n){
    if (n == 1){
        return new int[]{1};
    }
            
    int[] fib = new int[n];
    fib[0] = 1;
    fib[1] = 1;
    for (int i = 2; i < n; i++){
        fib[i] = fib[i-1]+fib[i-2];
    } 
    return fib;
}
Criado 18 de maio de 2009
Ultima resposta 18 de mai. de 2009
Respostas 2
Participantes 3