Java: vérifier si le nombre appartient à la séquence de Fibonacci
Je suis censé écrire un code qui vérifie si un nombre donné appartient à la séquence de Fibonacci. Après quelques heures de dur travail, c'est ce que je suis venu avec:
public class TP2 {
/**
* @param args
*/
public static boolean ehFibonacci(int n) {
int fib1 = 0;
int fib2 = 1;
do {
int saveFib1 = fib1;
fib1 = fib2;
fib2 = saveFib1 + fib2;
}
while (fib2 <= n);
if (fib2 == n)
return true;
else
return false;
}
public static void main(String[] args) {
int n = 8;
System.out.println(ehFibonacci(n));
}
}
Je dois être en train de faire quelque chose de mal, parce qu'il renvoie toujours "false". Des conseils sur la façon de résoudre ce problème?
- Sur une note de côté: - je trouver de l'aide
do {} while()
boucles n'est pas très pratique courante de nos jours. - Je trouver de l'aide d'un normalwhile() {}
boucle plus facile à lire, parce que vous savez dans quelles conditions le code que vous allez lire la suite sera exécuté. Comme un petit bonus en plus, il permet aussi d'économiser une seule ligne de code. Donc, sauf si vous avez besoin de votre code exécuté au moins une fois et ne peuvent pas facilement faire votre condition refléter le fait que, en utilisant une normale tandis que la boucle serait la voie à suivre.
Vous devez vous connecter pour publier un commentaire.
De continuer la boucle tout en
fib2 <= n
, de sorte que lorsque vous êtes hors de la boucle, fib2 est toujours> n
, et on en revient doncfalse
.Cela fonctionne. Je ne suis pas sûr de l'efficacité..mais c'est un infaillible programme,
}