用C语言编程输出数列1,1,2,3,5,8,13,21的前20 项

如题所述

这个问题所输出的数列叫Fibonacci数列
是一个有趣的古典数学问题
来源:
有一对兔子,从出生后第3个月起每一个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有的兔子都不死,问每个月的兔子总数为多少?

也就是说
后一个数是前2个数的和

测试系统 Turbo c 3.0

#include <stdio.h>
void main()
{
int f1,f2;
int i;
f1=1;f2=1;
for(i=1;i<=10;i++)
{
printf("%d,%d",f1,f2);
if(i%2==0)
printf("\n");
f1=f1+f2;
f2=f2+f1;
}
}
/*当i为偶数时换行,由于i增加1,输 出2个数,每隔2换一次行,当于每输出4个数字后换行*/

如果偶编写的程序有错,请指明,相互学习嘛,呵
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-06-16
上面那位老兄答案明显就是错的!

#include "stdio.h"
int main(void)
{
static int f[21]={0,1,1};
int i,j;
printf("前20个数列为\n");
printf("%d\t%d\t",f[1],f[2]);
j=2;
for(i=3;i<=20;i++)
{
f[i]=f[i-1]+f[i-2];
}
for(i=3;i<=20;)
{
printf("%d\t",f[i]);
j++;
if(j%4==0)
printf("\n");
i++;
}
}
第2个回答  推荐于2018-02-28
main()
{
int i=1,j=1,k,m;
for(k=0;k<20;k++)
{
printf("%d ",i);
m=j;
j+=i;
i=m;
}
}本回答被提问者和网友采纳
第3个回答  2008-06-16
int a=1,b=1;
printf("第1项为%d\n",a);
printf("第2项为%d\n",b);
for (int i=3;i<=20;i+=2){
a=a+b;
printf("第%d项为%d\n",i,a);
b=a+b;
printf("第%d项为%d\n",i+1,b);
}
相似回答