昌图网站,用php做的网站必备那些文件,广州高端网站开发,个人养老金制度将落地首先看一下斐波那契的矩阵表示#xff1a; 数列的递推公式为#xff1a;f(1)1#xff0c;f(2)2#xff0c;f(n)f(n-1)f(n-2)(n3) 用矩阵表示为#xff1a; 进一步#xff0c;可以得出直接推导公式#xff1a; #includeiostream
#includecstring
#i… 首先看一下斐波那契的矩阵表示 数列的递推公式为f(1)1f(2)2f(n)f(n-1)f(n-2)(n3) 用矩阵表示为 进一步可以得出直接推导公式 #includeiostream
#includecstring
#includecstdio
#includealgorithm
#includecmath
#includequeue
#define N 1000
using namespace std;int f[N];
int fibonacci_1(int n){//递归if(n1 || n0) return 1;return fibonacci_1(n-1) fibonacci_1(n-2);
}int fibonacci_2(int n){//递推f[0] f[1] 1;for(int i2; in; i)f[i] f[i-1] f[i-2];return f[n];
}int fibonacci_3(int n){//非递归int f11, f21, f3;for(int i2; in; i){f3 f1f2;f2 f1;f1 f3;}return f1;
}struct Fibonacci{int a11, a12, a21, a22;Fibonacci(){}Fibonacci(int a1, int a2, int a3, int a4){a11 a1;a22 a2;a21 a3;a22 a4;}Fibonacci operator *(Fibonacci x){Fibonacci* tmp new Fibonacci();tmp-a11 a11*x.a11 a21*x.a21;tmp-a12 a11*x.a12 a21*x.a22;tmp-a21 a21*x.a11 a22*x.a21;tmp-a22 a21*x.a21 a22*x.a22;return *tmp;}
};int fibonacci_4(int n){//矩阵 快速幂方法Fibonacci a(1, 1, 1, 0);Fibonacci ans(1, 0, 0, 1);while(n){//快速幂方法 if(n1) ans ans*a;aa*a;n1;}return ans.a11;
}
int main(){int n;cinn;coutfibonacci_1: fibonacci_1(n)endl;coutfibonacci_2: fibonacci_2(n)endl;coutfibonacci_3: fibonacci_3(n)endl;coutfibonacci_4: fibonacci_4(n)endl;return 0;
} 转载于:https://www.cnblogs.com/hujunzheng/p/4808912.html