Herausforderung
Sie müssen ein Programm oder eine Funktion generieren, die eine positive Ganzzahl N aufnimmt, die ersten N Terme der Fibonacci-Sequenz in Binärform berechnet, sie zu einer einzelnen Binärzahl verkettet, diese Zahl zurück in Dezimalform konvertiert und dann die Dezimalform als ausgibt ganze Zahl.
Beispielsweise
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
Sie müssen nicht ->
nur die Nummer ausgeben (z. B. wenn der Benutzer tippt 4
, nur ausgeben 14
). Die Pfeile sollen nur erklären, was das Programm tun muss.
Testfälle
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
Das Programm muss in der Lage sein, bis zur Grenze der verwendeten Sprache auszugeben. Nachschlagetabellen oder allgemeine Problemumgehungen sind nicht zulässig.
Das ist Code-Golf , also gewinnt die Antwort mit der kürzesten Anzahl von Bytes!
int32_t binary_concat_Fib(int n)
, was den resultierenden Ausgabewert auf 2 ^ 31-1 begrenzen würde. Sie können also annehmen, dass alle verketteten Bits in eine ganze Zahl passen. Oder sollte die Funktion bis zu dem Punkt funktionieren, an dem die größte Fibonacci-Zahl nicht für sich allein in eine Ganzzahl passt, sodass die Verkettung der Bits eine höhere Genauigkeit erfordert?