#include <iostream>
using namespace std;
int main() {
int i=1;
int j=0;
int k=0;
int h=1;
int t=0;
int n;
cin>>n;
while (n) {
if (n%2) {
t=j*h;
j=i*h+j*k+t;
i=ik+t;
}
t=h*h;
h=2*k*h+t;
k=k*k+t;
n=n/2;
}
cout<<j;
return 0;
}
这是我在互联网上找到的最快的斐波那契算法。我理解的其他算法,但这对我来说没有任何意义。
我看不出该算法与矩阵乘法或平方求幂有何关系。有人可以解释吗?