Rumah > Soal Jawab > teks badan
P粉0989790482023-08-17 16:52:41
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
dan n-1
和n
. Kemudian ulang k kali untuk mendapatkan nilai yang dikehendaki. Jejaki keputusan semasa anda berulang dan anda sepatutnya baik-baik saja.
function fibonacci(n) { const phi = (1 + Math.sqrt(5)) / 2; const psi = (1 - Math.sqrt(5)) / 2; // phi的负倒数 return Math.round((Math.pow(phi, n) - Math.pow(psi, n)) / Math.sqrt(5)); } // 测试 console.log(fibonacci(10)); // 输出:55
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.