C++求斐波那契数
题目内容:斐波那契数定义为:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n>1且n为整数)
如果写出菲氏数列,则应该是:
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; }
效果如图: