c++:用递归方法求 n!
时间: 2024-06-22 11:02:27 浏览: 216
在C++中,递归是一种强大的编程技术,常用于解决那些可以通过自身调用来定义的问题,比如计算阶乘(n!)。阶乘是一个数的所有正整数因子的乘积,表示为n! = n * (n-1) * (n-2) * ... * 1。递归方法求解n!的基本思路是:
1. 基本情况(或终止条件): 当n等于1时,1! = 1,返回1。
2. 递归情况: 当n大于1时,n! = n * (n-1)!。
以下是一个简单的C++递归函数来计算阶乘:
```cpp
#include <iostream>
// 递归函数来计算阶乘
unsigned long long factorial(int n) {
if (n == 1) { // 基本情况
return 1;
} else { // 递归情况
return n * factorial(n - 1); // 调用自身并传递n-1
}
}
int main() {
int num;
std::cout << "Enter a non-negative integer to calculate its factorial: ";
std::cin >> num;
if (num < 0) {
std::cerr << "Error: Factorial is undefined for negative numbers." << std::endl;
} else {
unsigned long long result = factorial(num);
std::cout << "The factorial of " << num << " is: " << result << std::endl;
}
return 0;
}
```
阅读全文
相关推荐
















