フィボナッチ数列を含む Io 問題に取り組んでいます。数値がフィボナッチ数かどうかをテストするメソッドを作成しようとしています。IsAFib メソッドが機能しない理由がわかりません。その理由と修正方法を知っている人はいますか? 私は Io もプログラミングもまったく初めてなので、変更の理由を説明していただければ幸いです。何と書くべきかだけでなく、何を変える必要があるのか知りたいです。
OperatorTable addOperator("xor", 11)
true xor := method(bool, if(bool, false, true))
false xor := method(bool, if(bool, true, false))
doFile("isASquare.io");
次に 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)
)