用递归的方法打印n的阶乘,并计算程序运行时间,用C++实现 using namespace std
时间: 2024-09-13 10:16:17 浏览: 42
在C++中使用递归方法打印n的阶乘,可以通过定义一个递归函数来实现。以下是一个简单的实现例子:
```cpp
#include <iostream>
#include <chrono>
// 递归函数计算阶乘
unsigned long long factorial(int n) {
if (n <= 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n;
std::cout << "请输入一个整数: ";
std::cin >> n;
// 获取开始时间
auto start = std::chrono::high_resolution_clock::now();
// 计算阶乘
unsigned long long result = factorial(n);
// 获取结束时间
auto end = std::chrono::high_resolution_clock::now();
// 计算并输出运行时间
std::chrono::duration<double, std::milli> diff = end - start;
std::cout << "运行时间为: " << diff.count() << "毫秒" << std::endl;
// 输出阶乘结果
std::cout << n << "! = " << result << std::endl;
return 0;
}
```
这段代码首先定义了一个名为`factorial`的递归函数,该函数接收一个整数参数`n`并返回其阶乘。如果`n`小于或等于1,则返回1,否则返回`n`乘以`n-1`的阶乘。在`main`函数中,程序首先提示用户输入一个整数`n`,然后通过`chrono`库计算并输出计算阶乘所需的时间,最后打印出计算得到的阶乘值。
阅读全文