Latar Belakang
Sebagian besar dari Anda tahu angka Fibonacci . Beberapa dari Anda mungkin tahu bahwa semua bilangan bulat positif dapat direpresentasikan sebagai jumlah dari satu atau lebih angka Fibonacci yang berbeda, menurut Teorema Zeckendorf . Jika jumlah istilah dalam Representasi Zeckendorf optimal dari integer n
sendiri merupakan nomor Fibonacci, kami akan memanggil n
Fibonacci "diam-diam".
Sebagai contoh:
139 = 89 + 34 + 13 + 3
This is a total of 4 integers. Since 4 is not a Fibonacci number, 139 is not secretly Fibonacci
140 = 89 + 34 + 13 + 3 + 1
This is a total of 5 integers. Since 5 is a Fibonacci number, 140 is secretly Fibonacci
Catatan
- Representasi Zeckendorf yang optimal dapat ditemukan menggunakan algoritma serakah. Cukup ambil angka Fibonacci terbesar <= n dan kurangi dari n hingga Anda mencapai 0
- Semua angka Fibonacci dapat direpresentasikan sebagai jumlah dari 1 angka Fibonacci (sendiri). Karena 1 adalah angka Fibonacci, semua angka Fibonacci juga merupakan Fibonacci diam-diam.
Tantangan
Tantangan Anda adalah menulis program atau fungsi yang mengambil bilangan bulat dan mengembalikan apakah bilangan bulat itu adalah Fibonacci.
Memasukkan
Anda dapat mengambil input dalam format apa pun yang masuk akal. Anda dapat berasumsi bahwa input akan berupa bilangan bulat positif tunggal.
Keluaran
Keluarkan salah satu dari dua hasil berbeda untuk apakah input tersebut diam-diam merupakan Fibonacci. Contohnya termasuk True
/ False
, 1
/ 0
, dll.
Mencetak gol
Ini kode-golf , jadi jawaban tersingkat dalam byte menang! Celah standar dilarang.
Uji Kasus
Truthy (secretly Fibonacci)
1
2
4
50
140
300099
Falsey (NOT secretly Fibonacci)
33
53
54
139
118808