Angka Fibonacci dapat dihitung dalam waktu linier menggunakan pengulangan berikut:
def fib(n):
i, j = 1, 1
for k in {1...n-1}:
i, j = j, i+j
return i
Angka Fibonacci juga dapat dihitung sebagai [ φ n / √. Namun, ini memiliki masalah dengan masalah pembulatan bahkan untukn yangrelatif kecil. Mungkin ada beberapacara untuk mengatasi initetapi saya lebih suka tidak melakukannya.
Apakah ada algoritma (logaritmik dalam nilai atau lebih baik) yang efisien untuk menghitung angka Fibonacci ke- n yang tidak bergantung pada aritmatika floating point? Asumsikan bahwa operasi integer ( + , - , × , / ) dapat dilakukan dalam waktu yang konstan.