#include
void main()
{
int a[20];//定义一个20个元素的数组
int i;
a[0]=a[1]=1;
for(i=2;i<20;i++)
a[i]=a[i-1]+a[i-2];//后一项等于前两项之和
for(i=0;i<20;i++)
{
printf("%d\t",a[i]);//保持一个Tab的间隔
if(i%5==4)//五个元素为一行
printf("\n");
}
如果还没学数组的话,就用循环;#include
void main()
{ int i;
int f1=1,f2=1;
printf("前20个数为:\n");
for(i=0;i<10;i++)//共输10组数,即20个//
{printf("%d\t %d\t",f1,f2);
f1=f1+f2;
f2=f2+f1;
}
}
应该定义成长整型,要不然会数据溢出,下面用两种方法实现此问.个人认为,第二种方法好.
第一种:循环
#include
void main()
{ int i;
long f1=1,f2=1;
printf("前15组菲薄纳妾数列为\n");
for(i=0;i<15;i++)/*共输15组数,即30个*/
{printf("%12ld%12ld",f1,f2);
f1=f1+f2;
f2=f2+f1;
}
}
第二种:数组
#include
void main()
{int i;
long fib[30]={1,1};/*初始化,让头两个元素为1,后面其他元素为0*/
for(i=2;i<30;i++)
fib[i]=fib[i-2]+fib[i-1];/*从第三个元素起,数组元素等于前两个元素之和*/
printf("前十五组菲薄纳妾数列为:\n");
for(i=0;i<30;i++)
printf("%12d",fib[i]);/*输出数组元素*/
}
这个也是我从其他网站上当下来的,我学的是PASCAL。