您的位置:首页 > 其它

【问题解决】斐波那契数列

2017-04-07 17:39 127 查看
f(n) = 0 ,            n = 0;
= 1 ,            n = 1;
= f(n-1)+f(n-2), n >=2;
如果使用递归,代码比较简单,但是递归深度太大,容易造成线程栈溢出以及重复计算太多,效率极低


循环代码如下:

#include<iostream>
using namespace std;

/*
斐波那契数列
可以用递归或者循环,但是递归在n很大的时候效率太低
*/

long long Fibonacci(size_t n)
{
int arr[] = { 0, 1 };
int FinumN_1 = 1;
int FinumN_2 = 0;
int FinumN = 0;
if (n < 2)
{
return arr
;
}
for (size_t i = 2; i <= n; i++)
{
FinumN = FinumN_1 + FinumN_2;
FinumN_2 = FinumN_1;
FinumN_1 = FinumN;
}
return FinumN;
}

void main(int argc,void *argv)
{
size_t n = 35;
cout << Fibonacci(n) << endl;
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: