版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013555238/article/details/79336236
#include <iostream>
using namespace std;
int Fabonaqie1(int num){ //迭代算法1
int a2 = 0;
if (num == 1){
return 0;
}
else if(num == 2){
return 1;
}
else{
int a0 = 0;
int a1 = 1;
for (int i = 3 ;i <= num ; ++i){
a2 = a0 + a1;
a0 = a1;
a1 = a2;
}
}
return a2;
}
int Fabonaqie2(int num){ 迭代算法2
int a0 = 0;
int a1 = 1;
if (num == 1){
return a0;
}
else if(num == 2){
return a1;
}
else{
for (int i = 0 ;i < (num-2)/2;++i){
a0 = a0 + a1;
a1 = a1 + a0;
}
if (!(num%2)){
return a1;
}
else{
return a0 + a1;
}
}
}
int Fabonaqie3(int num){ //递归算法
if (num == 1){
return 0;
}
else if(num == 2){
return 1;
}
else{
return Fabonaqie3(num -1) + Fabonaqie3(num - 2);
}
}
int main(void){
/*cout << Fabonaqie1(6) <<endl;
cout << Fabonaqie2(6) <<endl;*/
cout << Fabonaqie3(5) <<endl;
int vvv;
cin >> vvv;
}