Questo è uno dei migliori algoritmi per calcolare l'ennesima sequenza di Fibonacci. ha bisogno di O (log (n)) per fare il suo lavoro, quindi è così efficiente. L'ho trovato da qualche parte ma non so come funziona! Qualcuno può dirmi come funziona questo algoritmo? Grazie. Ecco il codice:
int fib3 (int n) {
int i = 1, j = 0, k = 0, h = 1, t;
while (n > 0) {
if (n % 2) {
t = j * h;
j = i * h + j * k + t;
i = i * k + t;
}
t = h * h;
h = 2 * k * h + t;
k = k * k + t;
n /= 2;
}
return j;
}