题目:输出斐波那契数列的前30项,第1、第2项都为1,并按每行打印5个数的方式输出。
1、用非数组的方式实现
#include <stdio.h>
void main()
{
int t1,t2,nextNum;
t1=t2=1; //初始化前两项和为1
printf("%10d",t1);
printf("%10d",t2);
for(int i=2;i<30;i++) //从第三项开始计算
{
nextNum = t1+t2;
printf("%10d",nextNum);
t1=t2;
t2=nextNum;
if((i+1)%5==0) //如果一行中有5个数,就换行
{
printf("\n");
}
}
}
2、用数组的方式实现
#include <stdio.h>
void main()
{
int a[30]; //定义数组大小
a[0]=a[1]=1; //第一、第二项初始化为 1
for(int i=2;i<30;i++) //从第三项开始计算
{
a[i]=a[i-1]+a[i-2];
}
for(int i=0;i<30;i++)
{
printf("%10d",a[i]); //输出显示 斐波那契数列 的前30项
if((i+1)%5==0) //如果一行中输出了5个数字,就换行
{
printf("\n");
}
}
}
附:自定义输出斐波那契数列的前n项
void main()
{
int n,t1,t2,next;
t1=t2=1;
scanf("%d",&n);
printf("%10d",t1);
printf("%10d",t2);
for(int i=2;i<n;i++)
{
next=t1+t2;
t1=t2;
t2=next;
printf("%10d",next);
if((i+1)%5==0)
{
printf("\n");
}
}
}
3、dgffdd