1.内容:
用递归,迭代和矩阵法求斐波那契数列,并对比运行时间。
2.代码:
#include<stdio.h>
#include<time.h>//clock函数头文件
unsigne dlong long a[100000000];//用于存迭代法的斐波那契数列
double diedai(int n)//迭代法求斐文那契数列 (从第一个数开始求,直到求出要的数为止)
{
int i;
a[1]=0;//第一个数
a[2]=1;//第二个数
clock_t beg,end;//起始时间和结束时间
double time;
beg=clock();//迭代法起始时间
for(i=3;i<=n;i++)//循环从第三个数开始,直到求出第n个斐波那契数
{
a[i]=a[i-1]+a[i-2];//根据前两个数求出第i个(后一个)斐波那契数
}
printf("迭代法计算第%d个数是%lld\n",n,a[n]);
end=clock();//迭代法结束时间
time=(double)(end- beg)/CLOCKS_PER_SEC;//迭代法运行时间
return time;
}
unsigned long long digui(int n)//递归算法计算
{
if(n==1)//当n==1时结束递归或求第一个数
{
return 0;
}
else if(n==2)//当n==2时结束递归或求第一个数
&nb

本文介绍了三种求斐波那契数列的方法:递归、迭代和矩阵法,并通过C语言实现,对比了它们的运行时间。递归法在理论上和实际上运行时间最长,迭代法运行时间最短,而矩阵法在效率上优于递归但逊于迭代。
最低0.47元/天 解锁文章
8万+

被折叠的 条评论
为什么被折叠?



