도전
양의 정수 N을 취하고 피보나치 시퀀스의 첫 번째 N 항을 이진수로 계산하여 단일 이진수로 연결 한 다음 해당 숫자를 다시 십진수로 변환 한 다음 십진수를 정수.
예를 들어
1 -> [0] -> 0 to decimal outputs 0
3 -> [0, 1, 1] -> 011 to decimal outputs 3
4 -> [0, 1, 1, 10] -> 01110 to decimal outputs 14
->
숫자 만 출력 할 필요는 없습니다 (예 : 사용자가 4
입력하면14
). 화살표는 프로그램이해야 할 일을 설명하는 데 도움이됩니다.
테스트 사례
1 -> 0
2 -> 1
3 -> 3
4 -> 14
5 -> 59
6 -> 477
7 -> 7640
8 -> 122253
9 -> 3912117
10 -> 250375522
11 -> 16024033463
12 -> 2051076283353
13 -> 525075528538512
14 -> 134419335305859305
15 -> 68822699676599964537
16 -> 70474444468838363686498
17 -> 72165831136090484414974939
18 -> 147795622166713312081868676669
19 -> 605370868394857726287334099638808
20 -> 4959198153890674493745840944241119317
프로그램은 사용중인 언어의 한계까지 출력 할 수 있어야합니다. 조회 테이블이나 일반적인 해결 방법이 없습니다. 허용되지 않습니다.
이것은 code-golf 이므로 가장 짧은 바이트 수의 응답이 이깁니다!
int32_t binary_concat_Fib(int n)
2 ^ 31-1에 결과 출력 값을 제한하는 것이다. 즉, 모든 연결된 비트가 정수에 적합하다고 가정합니다. 아니면 가장 큰 피보나치 수가 자체적으로 정수에 맞지 않는 지점까지 함수가 작동해야하므로 비트를 연결하면 확장 정밀도가 필요합니까?