Menulis beberapa kode yang mengambil satu bilangan bulat non-negatif n dan output n kekuatan Phi (φ, Rasio Emas, sekitar 1,61803398874989) dengan jumlah yang sama angka desimal sebagai n nomor Fibonacci.
Kode Anda harus menghasilkan urutan digit yang benar untuk semua input hingga setidaknya 10 (55 digit desimal). Outputnya harus berupa desimal yang dapat dibaca manusia. Anda dapat memilih apakah akan membulatkan digit terakhir ke nilai terdekat, atau memotong nilainya. Silakan tentukan yang mana kode Anda menggunakan.
n dan output, hingga 10, pembulatan ke bawah:
0 1
1 1.6
2 2.6
3 4.23
4 6.854
5 11.09016
6 17.94427190
7 29.0344418537486
8 46.978713763747791812296
9 76.0131556174964248389559523684316960
10 122.9918693812442166512522758901100964746170048893169574174
n dan output, hingga 10, pembulatan ke nilai terdekat:
0 1
1 1.6
2 2.6
3 4.24
4 6.854
5 11.09017
6 17.94427191
7 29.0344418537486
8 46.978713763747791812296
9 76.0131556174964248389559523684316960
10 122.9918693812442166512522758901100964746170048893169574174
Angka Fibonacci 7 adalah 13, sehingga output untuk n = 7, ϕ 7 , memiliki 13 tempat desimal. Anda tidak boleh memotong nol trailing yang akan menampilkan terlalu sedikit digit; lihat output untuk 6 pada tabel pertama, yang berakhir dengan nol tunggal untuk menjaga presisi desimal pada 8 digit.
Mungkin sebagai bonus, katakan berapa angka tertinggi yang dapat dihasilkan oleh program Anda dengan benar.
Jawaban:
dc, 26 byte
Karena ketepatan awal 99 digit setelah koma, ini akan bekerja untuk Anda input 11 . Presisi dinamis (atau statis lebih tinggi) dimungkinkan, tetapi akan meningkatkan jumlah byte.
Uji kasus
Bagaimana itu bekerja
Karena output yang diinginkan adalah φ n , kita dapat menghitung angka Fibonacci F (n) sebagai ⌊φ n ÷ √5 + 0,5⌋ dengan sedikit usaha tambahan.
sumber
Mathematica, 50 byte
Solusi dasar. Membulatkan ke nilai terdekat.
Masih memverifikasi nilai tertinggi yang tidak akan membuat komputer saya kehabisan memori.Input32
berfungsi, tetapi butuh 45 menit dan menggunakan 16GiB RAM. Namun, mengingat waktu dan memori yang tak terbatas, ini secara teoritis dapat berjalan untuk nilai apa pun.sumber