c语言斐波那契递归显示计算时间
时间: 2024-10-24 07:13:40 浏览: 16
c语言 递归方法来计算斐波那契数列
在C语言中,你可以使用递归函数来计算斐波那契数列,同时通过`clock()`函数或者`chrono`库来测量运行时间。递归版本的斐波那契函数会重复计算已知值,效率不高,特别对于大的数字,这将消耗大量时间。
下面是一个简单的示例,展示了如何使用递归计算斐波那契数并测量时间:
```c
#include <stdio.h>
#include <time.h>
// 递归函数计算斐波那契数
long long fib(int n) {
if (n <= 1)
return n;
else
return fib(n - 1) + fib(n - 2);
}
int main() {
int num = 50; // 要求计算的斐波那契数
clock_t start, end;
start = clock(); // 记录开始时间
long long result = fib(num);
end = clock(); // 记录结束时间
double time_spent = ((double)(end - start)) / CLOCKS_PER_SEC; // 转换为秒
printf("Fibonacci of %d is %lld and it took %.6f seconds to compute.\n", num, result, time_spent);
return 0;
}
```
在这个例子中,我们先记录开始时间,然后调用`fib()`函数计算,最后再次记录结束时间。两者之差除以CLOCKS_PER_SEC(每秒的时钟周期数)就得到程序运行的时间。
注意递归斐波那契计算的时间复杂度为O(2^n),随着n的增长,时间会急剧增加,不适合用于大数值计算。
阅读全文