永发信息网

c++中斐波那契数列

答案:5  悬赏:0  手机版
解决时间 2021-11-19 03:26
  • 提问者网友:一抹荒凉废墟
  • 2021-11-18 05:20
c++中斐波那契数列
最佳答案
  • 五星知识达人网友:独钓一江月
  • 2021-11-18 06:35
#include
#include
int main()
{
int n,a[48],b,c,d;
a[0]=0;a[1]=1;
scanf("%d",&n);
if (n>=3)
{printf("%15d%15d",a[0],a[1]);
for (b=2;b {a[b]=a[b-1]+a[b-2];printf("%15d",a[b]);
if (b%4==3) printf("\n");}}
else {if (n==1) printf("%15d",a[0]);
if (n==2) printf("%15d%15d",a[0],a[1]);}
printf("\n");
system("pause");
return 0;
}
全部回答
  • 1楼网友:煞尾
  • 2021-11-18 09:30
int a[17];
a[0]=1;
a[1]=1;
for(int i=2; i < 17; i++)a[i]=a[i-1]+a[i-2];
cout<谢谢,但是——————
算成18项了
我把【17】-1
【16】-1
就可以了
  • 2楼网友:迟山
  • 2021-11-18 08:32

我写了一个,可以运行的了。你参考参考吧~~~

#include "stdafx.h";

int _tmain(int argc, _TCHAR* argv[])

{

int a[3];

a[0]=1;a[1]=1;

a[2]=a[0]+a[1];

int i,n;

printf("请输入要求的斐波那契数列的第n项 ");

printf("n:");

scanf("%d",&n);

printf(" ");

for(i=3;i<=n;i++)      

{

a[2]=a[0]+a[1];    

a[0]=a[1];

a[1]=a[2];

}

printf("第%d项斐波那契数列的数字为:",n);

printf("%d",a[2]);

scanf("%d",&i);

return 0;

}

追问谢谢,但是运行不了·······
还有,你算成18项了
楼上的对了
  • 3楼网友:纵马山川剑自提
  • 2021-11-18 07:00
斐波那契数列每一项都是前两项和,所以利用递推公式f(n)=f(n-1)+f(n-2),f(1)=f(2)=1
核心部分是
int i,fn,f1,f2;
f1=f2=1;

for(i=2;i<17;i++){
f2=f1;
f1=fn;
fn=f1+f2;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯