1、个人理解
一组有序的数列,前两位为1,后续每一位都为前一位加前两位之和。
2、需求:
输出斐波那契数列前40个数。
3、源码:
(1)循环实现:
#include<stdio.h>
#define NUM 40
#include<time.h> //用到clock()函数
void main()
{
int begintime,endtime;
begintime=clock();
int i,f1,f2,flag,rs;
f1 = 1;
f2 = 1;
flag = 0;
for(i=1;i<=NUM-2;i++)
{
rs = f1 + f2;
f1 = f2;
f2 = rs;
printf("斐波那契数列[%d]:%d\n",i+2,rs);
}
endtime = clock(); //计时结束
printf("\n\nRunning Time:%dms\n", endtime-begintime);
}
(2)数组实现:
#include<stdio.h>
#include<time.h> //用到clock()函数
#define NUM 40
void main()
{
int begintime,endtime;
begintime=clock(); //计时开始
int i;
int a[NUM]={1,1};
for(i=2;i<NUM;i++)
{
a[i] = a[i-1] + a[i-2];
}
for(i=0;i<NUM;i++)
{
printf("斐波那契数列[%d]:%d\n",i,a[i]);
}
endtime = clock(); //计时结束
printf("\n\nRunning Time:%dms\n", endtime-begintime);
}
4、运行结果