我正在研究一个涉及斐波那契数列的 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)
)