Desafio
Você precisa gerar um programa ou função que receba um número inteiro positivo N, calcule os primeiros N termos da sequência de Fibonacci em binário, concatene-o em um único número binário, converta esse número de volta para decimal e, em seguida, gera o decimal como um inteiro.
Por exemplo
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
Você não precisa emitir o ->
, apenas o número (por exemplo, se o usuário digitar 4
, apenas o resultado 14
). As setas são apenas para ajudar a explicar o que o programa deve fazer.
Casos de teste
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
O programa deve ser capaz de produzir até o limite do idioma em uso. Não são permitidas tabelas de pesquisa ou soluções alternativas comuns .
Isso é código-golfe , então a resposta com o menor número de bytes vence!
int32_t binary_concat_Fib(int n)
, o que limitaria o valor de saída resultante a 2 ^ 31-1. ou seja, você assume que todos os bits concatenados se encaixam em um número inteiro. Ou a função deve funcionar até o ponto em que o maior número de Fibonacci não se encaixa em um número inteiro por si só, para concatenar os bits requer precisão estendida?