C++的Fibonacci数列问题!

来源:百度知道 编辑:UC知道 时间:2024/06/30 16:41:03
Fibonacci数列。Fibonacci数列的计算公式如下:
fib(1)=1;fib(2)=1;fib(n)=fib(n-1)+fib(n-2);
(1)简单变量old1=1,old2=1,newItem;新的Fibonacci项newItem总是“距离最近”的前两项(old1与old2)的累加和。而后通过"old1=old2;old2=newItem;"进行所谓的“数据平移”。接着计算另一个新的Fibonacci项的newItem,依次循环,直到求出
数列的第n项时为止。
(2)使用数组求出Fibonacci数列的第n项(正整数n通过键盘输入)并显示在屏幕上;说明数组f用来存放Fibonacci数列的各项之值,
且仅初始化前两个元素f[0]=1,f[1]=1;而后通过f[i]=f[i-2]+f[i-1];依次计算出f[2]到f[n-1](注意f[n-1]恰为所要求出的第n项)
并将该值显示在屏幕上。

1.
int old1=1,old2=1,newitem=0;
for(int i=3;i<=n;++i)
{ newitem=old1+old2;
old1=old2;
old2=newitem;}
2.int f[n]={1,1};//有个问题,数组大小必须为常量,所以只能选够大的
for(int i=2;i<n;++i)//循环体
{ f[i]=f[i-1]+f[i-2];}
cout<<f[n-1]<<endl;//输出n-1项