Saya mahu melaksanakan fungsi yang menjana jujukan Fibonacci daripada if
terima kasih.
Kemas kini:
Ini adalah kontrak pintar untuk blockchain di mana int
Ia adalah 256 bit . Apabila
fungsi getFibSeq(n, k) { biarkan nombor = []; biarkan n1 = 0; biarkan n2 = 1; biarkan i = 0; biarkan j = (n + k); manakala (i < j){ jika((i - n) >= 0){ output.push(n1); } if((j - i - 1) > 0){ biarkan suhu = n1; n1 = n2; if((j - i - 2) > 0) { n2 = temp + n2; } } i = i + 1; } pulangan keluaran; }
Terdapat formula tertutup untuk mengira nombor Fibonacci ke-1, dikenali sebagai formula Binet. Ini membolehkan anda mendapatkan nombor ke-n dalam kerumitan masa asimptotik
O(1)
.Berikut ialah contoh yang menunjukkan cara mengira nombor Fibonacci untuk mana-mana
n
.Lanjutkan ini untuk menyelesaikan masalah khusus anda. Saya cadangkan mengira nilai
n-1
dann-1
和n
. Kemudian ulang k kali untuk mendapatkan nilai yang dikehendaki. Jejaki keputusan semasa anda berulang dan anda sepatutnya baik-baik saja.Nota:Walaupun formula ini memberikan hasil yang tepat untuk nilai
n
yang lebih kecil, ketepatan mungkin hilang untuk nilai yang lebih besar disebabkan oleh pengehadan operasi titik terapung dalam JavaScript.