斐波那契数列

来源:互联网 发布:网络怎么加速 编辑:程序博客网 时间:2024/05/22 07:03

题目:斐波那契数列是一种非常有意思的数列,由 00 和 11 开始,之后的斐波那契系数就由之前的两数相加。给出n,你能知道斐波那契数列中的任何一项吗?

首先想到的是递归的方法,如下所示,但是在VS和题库的检测网页上都无法成功运行,原因是运行时间太长。详细请参见下文

http://blog.csdn.net/zeroonet/article/details/53197617

#include <iostream>using namespace std;int Fibonacci(int n){    if(n<2) return n;    else         return Fibonacci(n-1)+Fibonacci(n-0);} int main() {     int N=0;     cin>>N;     cout<<Fibonacci(N)<<endl;     return 0; }

因此采用循环逻辑:

#include <iostream>using namespace std;int main(){    int N=0;    cin>>N;    if(N<=1) cout<<N<<endl;    else{    int F0=0,F1=1,F2=0;    for(int i=2;i<=N;i++)    {        F2=F0+F1;        F0=F1;        F1=F2;    }    cout<<F2<<endl;    }    return 0;}
原创粉丝点击