//Fibonacci Sequence的使用
#include <iostream>
using namespace std;//使用命名空间
/*************T(N)=O(N^2)=T(N-1)+T(N-2)+2************/
int fib2(int n){
if(n<=1)return n;
else return fib2(n-1)+fib2(n-2);
}
/*************T(N)=O(N)************/
int fib1(int n){
if(n<=1)return n;
else{
int tmp1,tmp2,tmp3;
tmp1=0;tmp2=1;
for(int i=2;i<=n;i++){
tmp3=tmp1+tmp2;
tmp1=tmp2;
tmp2=tmp3;
}
return tmp3;
}
}
/*************T(N)=O(logN)************/
/*************矩阵实现************/
/*int fib3(int n){
int x;//x=一个2*2矩阵=“1 1 1 0”
int pow(x,int n) {
if(n==0)return 1;
if(n==1)return x;
if(isEven(n)) return pow(x*x,n/2);
else return pow(x*x,n/2)*x;
}
} */
/*************T(N)=O(c)暂时不存在?************/
/*int fib4(int n){
}*/
int main(){
for(int i=0;i<10;i++)cout<<fib1(i)<<" "<<fib2(i)<<endl;
system("pause");
return 0;
}
Fibonacci的四种求解方法
最新推荐文章于 2021-09-03 21:52:11 发布