피보나치 시퀀스와 관련된 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)
)
[위키 백과] (http://en.wikipedia.org/)에 따르면 'isASquare (2 ** n * 5 + 4) xor isASquare (2 ** n * 5 - 4) wiki/Fibonacci_number # Recognizing_Fibonacci_numbers)? – Bergi
@Bergi 나는 그것이 다음 단계의 방법에서 사용할 수 있도록 true 또는 false로 돌아가고 싶다고 생각합니다. xor가 수익과 같은 것까지도 사용할 수 있습니까? – user2220574