Meydan okuma
Olumlu bir tamsayı alan, Fibonacci dizisinin ilk N terimlerini ikili olarak alan, tek bir ikili sayıya birleştiren, bu sayıyı ondalık basamağa dönüştüren ve ardından ondalık olarak basılan bir program ya da işlev oluşturmanız gerekir. tamsayı.
Örneğin
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
->
Sadece sayıyı çıkarmanız gerekmez (örneğin, kullanıcı yazıyorsa 4
, çıktı 14
). Oklar sadece programın ne yapması gerektiğini açıklamaya yardımcı olmak içindir.
Test durumları
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
Program, kullanılan dil sınırına kadar çıktı verebilmelidir. Arama tablolarına veya ortak geçici çözümlere izin verilmez.
Bu kod golf , yani en kısa bayt sayısına sahip olan cevap kazanır!
int32_t binary_concat_Fib(int n)
, elde edilen çıkış değeri 2 ^ 31-1 ile sınırlandırılır. yani birleştirilmiş tüm bitlerin bir tamsayıya uyduğunu varsayıyorsunuz. Yoksa işlev, en büyük Fibonacci sayısının kendi başına bir tamsayıya uymadığı noktaya kadar mı çalışmalı, bu yüzden bitleri birleştirmek hassasiyeti arttırıyor mu?