用递归函数计算n的阶乘,并用clock函数计算运行时间,使用c++代码
时间: 2024-09-13 14:16:38 浏览: 74
计算n的阶乘使用递归函数是一种直观的方式,递归函数通过自己调用自己来实现重复计算。在C++中,可以使用`clock()`函数来测量代码执行的时间,该函数会返回程序启动到调用该函数时的处理器时钟周期数。下面是一个简单的例子来说明如何实现:
```cpp
#include <iostream>
#include <chrono>
// 递归函数计算阶乘
unsigned long long factorial(unsigned int n) {
if (n <= 1) return 1; // 递归终止条件
return n * factorial(n - 1); // 递归调用
}
int main() {
unsigned int number;
std::cout << "请输入要计算阶乘的数: ";
std::cin >> number;
// 开始计时
auto start = std::chrono::high_resolution_clock::now();
// 计算阶乘
unsigned long long result = factorial(number);
// 结束计时
auto end = std::chrono::high_resolution_clock::now();
// 计算运行时间
std::chrono::duration<double, std::milli> elapsed = end - start;
std::cout << "运行时间: " << elapsed.count() << " ms\n";
std::cout << number << "! = " << result << std::endl;
return 0;
}
```
在这段代码中,我们首先包含了`iostream`和`chrono`两个头文件,`iostream`用于输入输出操作,而`chrono`用于处理时间。`factorial`函数是递归实现的阶乘函数,`main`函数中我们通过`std::cin`获取用户输入的数字,然后使用`std::chrono`库的`high_resolution_clock`来计算函数执行时间,并以毫秒为单位输出。
阅读全文