Reto
Debe generar un programa o función que tome un número entero positivo N, calcule los primeros N términos de la secuencia de Fibonacci en binario, lo concatene en un solo número binario, convierta ese número de nuevo en decimal y luego muestre el decimal como un entero.
Por ejemplo
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
No es necesario que muestre el ->
, solo el número (por ejemplo, si el usuario escribe 4
, solo muestra 14
). Las flechas son solo para ayudar a explicar lo que debe hacer el programa.
Casos de prueba
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
El programa debe poder generar hasta el límite del idioma en uso. No se permiten tablas de búsqueda ni soluciones alternativas comunes .
Este es el código de golf , por lo que gana la respuesta con el menor número de bytes.
int32_t binary_concat_Fib(int n)
, lo que limitaría el valor de salida resultante a 2 ^ 31-1. es decir, puede suponer que todos los bits concatenados encajan en un número entero. ¿O debería funcionar la función hasta el punto en que el número de Fibonacci más grande no cabe en un entero por sí solo, por lo que concatenar los bits requiere una mayor precisión?