C++求斐波那契数

题目内容:斐波那契数定义为:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n>1n为整数)

如果写出菲氏数列,则应该是:

0 1 1 2 3 5 8 13 21 34 ……

如果求其第6项,则应为8

求第n项菲氏数。

输入描述:输入数据含有不多于50个的正整数n(0<=n<=46)

输出描述:对于每个n,计算其第n项菲氏数,每个结果应单独占一行。

题目分析:先把第0项到第46项的斐波那契数求出来,放在一个数组中,然后,直接查表即可,这样就不会超时。

参考代码:

#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int main(int argc,char * argv[])
{
    int a[47];
    a[0]=0;
    a[1]=1;
    for(int i=2;i<=46;i++)
    {
        a[i]=a[i-1]+a[i-2];
    }
    int n;
    while(cin>>n)
    {
        cout<<a[n]<<endl;
    }
    system("pause");
    return 0;
}

效果如图:

posted @ 2013-10-21 15:38  源子陌  Views(1432)  Comments(0Edit  收藏  举报