首页 > 程序开发 > 软件开发 > 其他 >

斐波那契数列

2017-04-08

斐波那契数列:如果使用递归,代码比较简单,但是递归深度太大,容易造成线程栈溢出以及重复计算太多,效率极低。

斐波那契数列:如果使用递归,代码比较简单,但是递归深度太大,容易造成线程栈溢出以及重复计算太多,效率极低。
f(n) = 0 , n = 0;

= 1 , n = 1;

= f(n-1)+f(n-2), n >=2;

循环代码如下:

#include

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[n];

}

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");

}
相关文章
最新文章
热点推荐