Déterminer si un nombre est un nombre de Fibonacci

J'ai besoin d'écrire du code Java qui vérifie si l'utilisateur d'inscription le nombre est dans la séquence de Fibonacci.

Je n'ai pas de problème de l'écriture de la suite de Fibonacci à la sortie, mais (probablement parce que ses tard dans la nuit) j'ai du mal à penser à la séquence de "si", c'est un nombre de Fibonacci. Je garde de départ et recommencer. Ses vraiment en train de faire ma tête.

Ce que j'ai actuellement est le n-ième.

public static void main(String[] args)
{
    ConsoleReader console = new ConsoleReader();

    System.out.println("Enter the value for your n: ");
    int num = (console.readInt());
    System.out.println("\nThe largest nth fibonacci: "+fib(num));
    System.out.println();
}

static int fib(int n){
    int f = 0;
    int g = 1;
    int largeNum = -1;
    for(int i = 0; i < n; i++)
    {
      if(i == (n-1))
          largeNum = f;
      System.out.print(f + " ");
      f = f + g;
      g = f - g;
    }
    return largeNum;
}
Qu'est-ce exactement que vous essayez de faire? obtenir le n-ième nombre de fibonacci? le nombre de fibonacci qui est plus grand que n? découvrez si n est un nombre de fibonacci?
Voir stackoverflow.com/questions/2432669/....
Wow, en regardant les commentaires, il y a beaucoup de discussion sur ce qui est la meilleure solution d'un point de vue algorithmique. Mais n'oubliez pas que c'est les devoirs, et à en juger par le code, ce n'est pas exactement un des algorithmes avancés de cours. Ce qui est probablement souhaité est le code plus facile à comprendre. @Emily, votre instructeur de vous donner le sens de la façon dont vous êtes censé résoudre ce problème?
Voir ici pour des réponses rapides à l'aide de seulement plus, moins et la multiplication: stackoverflow.com/questions/5162780

OriginalL'auteur Emily | 2010-06-29