斐波那契数列
斐波那契额数列,又称为黄金分割数列,指的是这样一个数列:
1、1、2、3、5、8、13、21、······
简单来说就是前两项的和是第三项的值。
1、普通实现(迭代)
#include <iostream>
using namespace std;
int fibon(int n){
int a = 1;
int b = 1;
int c = a;
while(n > 2){
c = a + b; //从第三个数开始,斐波那契数就等于前两个数的和;
a = b;
b = c;
n--;
}
return c;
}
int main(){
int n = 0;
cin >> n;
int q = fibon(n);
cout << "第" << n << "个斐波那契数为:"<< q << endl;
return 0;
}
2、递归实现
#include <iostream>
using namespace std;
int fibon(int n){
if(n <= 2){
return 1;
}else{
return fibon(n-1) + fibon(n-2);
}
}
int main(){
int n = 0;
cin >> n;
int q = fibon(n);
cout << q << endl;
return 0;
}
3、优化递归实现
#include <iostream>
using namespace std;
int fibonc(int a, int b, int n){
if(n > 2){
return fibonc(a+b, a, n-1);
}
return a;
}
int main(){
int a = 1;
int b = 1;
int n = 0;
cin << n;
int q = fibonc(a, b, n);
cout << q << endl;
return 0;
}