배경
대부분의 피보나치 수 는 무엇인지 알고 있습니다. Zeckendorf의 정리 에 따르면 모든 양의 정수가 하나 이상의 고유 피보나치 수의 합으로 표현 될 수 있음을 알고있을 것입니다 . 정수의 최적의 Zeckendorf Representation에서 용어의 수가 n
피보나치 수인 경우, n
"비밀로"피보나치라고합니다.
예를 들면 다음과 같습니다.
139 = 89 + 34 + 13 + 3
This is a total of 4 integers. Since 4 is not a Fibonacci number, 139 is not secretly Fibonacci
140 = 89 + 34 + 13 + 3 + 1
This is a total of 5 integers. Since 5 is a Fibonacci number, 140 is secretly Fibonacci
노트
- 최적의 Zeckendorf Representation은 욕심 많은 알고리즘을 사용하여 찾을 수 있습니다. 가장 큰 피보나치 수 <= n을 취하여 0에 도달 할 때까지 n에서 빼십시오.
- 모든 피보나치 수는 1 피보나치 수 (자체)의 합으로 표시 될 수 있습니다. 1은 피보나치 수이므로 모든 피보나치 수는 비밀리에 피보나치입니다.
도전
당신의 도전은 정수를 취하고 그 정수가 비밀리에 피보나치인지 여부를 반환하는 프로그램이나 함수를 작성하는 것입니다.
입력
합리적인 형식으로 입력 할 수 있습니다. 입력이 단일 양의 정수라고 가정 할 수 있습니다.
산출
입력 값이 비밀리에 피보나치인지에 대한 두 가지 뚜렷한 결과 중 하나를 출력합니다. 예를 들어 True
/ False
, 1
/ 0
등이 있습니다.
채점
이것은 code-golf 이므로 바이트 단위의 최단 답변이 승리합니다! 표준 허점은 금지되어 있습니다.
테스트 사례
Truthy (secretly Fibonacci)
1
2
4
50
140
300099
Falsey (NOT secretly Fibonacci)
33
53
54
139
118808