目的主要是为了比较一下递归和非递归的运行时间的差异,但是由于数的限制,当输入的数超出限制了,程序就可能无法运行.
在这里面会使用到C语言库函数time.h
.返回类型为t实际为long
.clock()函数是可以计算从开始执行程序到程序结束的时间的,返回时间是毫秒
.
#include<stdio.h>
#include<time.h>
int main()
{
clock_t start_time,end_time;
start_time=clock();//开始时间
//这里面写要测试的程序
a=1;b=2;
c=a+b;
end_time=clock();//结束时间
printf("%.2f",(double)(start_time-end_time));
return 0;
}
比较代码:
#include<stdio.h>
#include<time.h>
//非递归算法
long Fibno(int n)
{
if(n==1)
return 1;
else if(n==2)
return 1;
long f1,f2,f3;
f1=1,f2=1;
for(int i=3;i<=n;i++){
f3=f2+f1;
f1=f2,f2=f3;
}
return f3;
}
//递归算法
long Fib(int n)
{
if(n==1)
return 1;
else if(n==2)
return 1;
else