斐波那契数列的实现

来源:互联网 发布:淘宝账号密码分享 编辑:程序博客网 时间:2024/06/01 08:30

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……

代码实现:

#include<iostream>using namespace std;//1、1、2、3、5、8、13、21、34、……int Fibonacci_1(int n) //递归{if(n == 1 || n == 2)return 1;else{return Fibonacci_1(n-1) + Fibonacci_1(n-2);}}int Fibonacci_2(int n) //循环{if (n ==1 || n == 2){return 1;}int a = 1;int b = 1;int tmp;for(int i=3;i<=n;++i){tmp = a + b;a = b;b = tmp;}return tmp;}int main(){cout<<Fibonacci_1(3)<<endl;cout<<Fibonacci_1(5)<<endl;cout<<Fibonacci_2(3)<<endl;cout<<Fibonacci_2(5)<<endl;}

总结:尽量使用循环的写法,因为递归的那个时间复杂度太大了,如果参数给定的值很大,很明显可以看出循环要快。

还有,如果在题目中遇到所要求的数比较依赖于前面的结果,就考虑斐波那契数列。