Je travaille sur un problème Io qui implique la séquence de Fibonacci. J'essaye de créer une méthode qui teste si un nombre est un nombre de Fibonacci ou pas. Je n'arrive pas à comprendre pourquoi ma méthode IsAFib ne fonctionne pas, est-ce que quelqu'un sait pourquoi et ce que je peux faire pour la réparer? Je suis vraiment nouveau à Io, et pas très nouveau en programmation, donc si vous pouviez être descriptif avec vos raisons de changer les choses, je l'apprécierais vraiment! Je veux savoir ce qu'il doit être différent, pas seulement ce qu'il devrait être écrit.Problèmes Io Language Fibonacci
OperatorTable addOperator("xor", 11)
true xor := method(bool, if(bool, false, true))
false xor := method(bool, if(bool, true, false))
doFile("isASquare.io");
Ensuite, le fichier isASquare.io:
isASquare := method(n,
for(i, 1, n,
if(i * i == n, return true)
if(i * i > n, return false)
)
)
isAFib := method(n,
if(isASquare(2 ** 5 * n) xor isASquare(2 ** n * 5 - 4), return true, return false)
)
Ne devrait-il pas être 'return isASquare (2 ** n * 5 + 4) x ou isASquare (2 ** n * 5 - 4)' d'après [Wikipedia] (http://en.wikipedia.org/ wiki/Fibonacci_number # Recognizing_Fibonacci_numbers)? – Bergi
@Bergi Je pense que je veux que ce soit vrai ou faux si, afin que je puisse l'utiliser dans mes prochaines méthodes. Xor pourrait-il même fonctionner avec quelque chose comme le retour? – user2220574