解题思路:
根据斐波纳的特点,其第1、2项均为1,从第三个数开始,该数是数列中前两个数的和的。将f1、f2初始值设为数列的头两个数,然后再根据其特点,循环输出。通过不大于40的N数控制循环体,输出即可。
注意事项:
看清题意,是输出N个斐波数而不是输出N以内的斐波数。
参考代码:#include
int main()
{
int N;
int f1=0; //假设为头列第一个数,初始化为0;
int f2=1;//假设为头列第二个数,初始化为1;
int f3=0;//设为fib数,即为第三个数;
scanf("%d",&N);//输入要输出斐波数的个数
if(N<=40)//不大于40个数。
{while(N--)//控制输出的斐波数的个数;
{
f1=f2;//假设头列的第一个数与第二个数相等
f2=f3;//第二个数与第三个数相等;
f3=f1+f2;//第三个数又是第一个数与第二个数的和,即为斐波数;
printf("%d ",f3);//符合循环条件的斐波输出;
}printf("\n");}
return 0;
}