Thử thách
Bạn cần tạo một chương trình hoặc hàm lấy số nguyên dương N, tính toán các số hạng N đầu tiên của chuỗi Fibonacci trong nhị phân, ghép nó thành một số nhị phân duy nhất, chuyển đổi số đó thành số thập phân và sau đó xuất ra số thập phân dưới dạng số thập phân số nguyên.
Ví dụ
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
Bạn không cần phải xuất số ->
, chỉ là số (ví dụ: nếu người dùng nhập 4
, chỉ cần xuất 14
). Các mũi tên chỉ để giúp giải thích những gì chương trình phải làm.
Các trường hợp thử nghiệm
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
Chương trình phải có khả năng xuất ra đến giới hạn của ngôn ngữ đang sử dụng. Không có bảng tra cứu hoặc giải pháp chung cho phép.
Đây là môn đánh gôn , vì vậy câu trả lời có số byte ngắn nhất sẽ thắng!
int32_t binary_concat_Fib(int n)
, sẽ giới hạn giá trị đầu ra kết quả là 2 ^ 31-1. tức là bạn có thể giả sử tất cả các bit được nối phù hợp với một số nguyên. Hoặc hàm có nên hoạt động đến điểm mà số Fibonacci lớn nhất không tự khớp với một số nguyên hay không, do đó, việc ghép các bit có độ chính xác mở rộng?