Sfida
È necessario generare un programma o una funzione che accetta un numero intero positivo N, calcola i primi N termini della sequenza di Fibonacci in binario, lo concatena in un singolo numero binario, converte quel numero in decimale e quindi restituisce il decimale come un numero intero.
Per esempio
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
Non è necessario emettere il ->
, solo il numero (ad es. Se l'utente digita 4
, solo l'output 14
). Le frecce servono solo a spiegare cosa deve fare il programma.
Casi test
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
Il programma deve essere in grado di produrre fino al limite della lingua in uso. Non sono consentite tabelle di ricerca o soluzioni alternative comuni .
Questo è code-golf , quindi vince la risposta con il minor numero di byte!
int32_t binary_concat_Fib(int n)
, che limiterebbe il valore di output risultante a 2 ^ 31-1. vale a dire che si assume che tutti i bit concatenati rientrino in un numero intero. O la funzione dovrebbe funzionare fino al punto in cui il più grande numero di Fibonacci non si adatta a un intero da solo, quindi concatenare i bit richiede una precisione estesa?