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

来源:互联网 发布:提取人声软件 编辑:程序博客网 时间:2024/06/06 07:35
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[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");}
0 0
原创粉丝点击