c++:用递归方法求 n!
时间: 2024-06-22 13:02:27 浏览: 212
在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;
}
```
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)