Kita semua akrab dengan urutan Fibonacci yang terkenal , yang dimulai dengan 0
dan 1
, dan setiap elemen adalah jumlah dari dua sebelumnya. Berikut adalah beberapa istilah pertama (OEIS A000045 ):
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584
Diberikan bilangan bulat positif , kembalikan nomor terdekat dari urutan Fibonacci, di bawah aturan ini:
Angka Fibonacci terdekat didefinisikan sebagai angka Fibonacci dengan perbedaan absolut terkecil dengan bilangan bulat yang diberikan. Misalnya,
34
adalah bilangan Fibonacci terdekat30
, karena|34 - 30| = 4
, yang lebih kecil dari bilangan terdekat kedua21
, untuk itu|21 - 30| = 9
.Jika bilangan bulat yang diberikan milik urutan Fibonacci, angka Fibonacci terdekat adalah dirinya sendiri. Sebagai contoh, angka Fibonacci terdekat
13
adalah tepat13
.Dalam kasus seri, Anda dapat memilih untuk menampilkan salah satu dari nomor Fibonacci yang keduanya paling dekat dengan input atau hanya output keduanya. Misalnya, jika input
17
, semua berikut ini adalah valid:21
,13
atau21, 13
. Jika Anda mengembalikan keduanya, harap sebutkan formatnya.
Berlaku celah default . Anda dapat mengambil input dan memberikan output melalui metode standar apa pun . Program / fungsi Anda hanya harus menangani nilai hingga 10 8 .
Uji Kasus
Input -> Output 1 -> 1 3 -> 3 4 -> 3 atau 5 atau 3, 5 6 -> 5 7 -> 8 11 -> 13 17 -> 13 atau 21 atau 13, 21 63 -> 55 101 -> 89 377 -> 377 467 -> 377 500 -> 610 1399 -> 1597
Mencetak gol
Ini adalah kode-golf , jadi kode terpendek dalam byte di setiap bahasa menang!
n
menyiratkan n ≥ 1
.