【发布时间】:2016-02-08 13:11:05
【问题描述】:
int fib(int n,int a,int b){
if (n==2){
return a+b;
}
return fib(n-1,b,a+b);
}
int main() {
time_t begin,end;
begin = clock();
fib(10000,0,1);
end = clock();
printf("%f",difftime(end,begin));
}
int main() {
time_t begin,end;
time(&begin);
fib(10000,0,1);
time(&end);
printf("%f",(double)(end-begin)/CLOCKS_PER_SEC);
}
1)第一个问题
为什么我的第一个主要给我打印了一个时间288.000000,我假设这是 288 毫秒,但在文档中它应该在几秒钟内给我结果。顺便说一下,我在 Mac 上。
2)第二个问题
为什么第二个主要。
为什么这会打印输出时间为0.000000。
我知道 time() 给了我一个 time_t 结构,我把它放在 begin 和 end time_t 结构中,然后我发现以秒为单位的差异,似乎不起作用。
【问题讨论】:
-
您能解释一下您的预期输出是什么吗?您是否尝试在不同时间之间打印秒数?
-
我期待像
0.000198这样的东西,因为像200.000000这样的东西意味着 200 秒是错误的,0.000000也是错误的。 -
是的,我正在尝试获取两个不同时间之间的秒差。