6-5 递归函数求n!
时间: 2023-11-28 13:47:13 浏览: 86
求 n! 的递归函数可以定义如下:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```
当 n 为 0 时,返回 1;否则,返回 n 与 n-1 的阶乘之积。这里使用了递归,每次调用函数时将问题规模减小,直到问题规模为 0 时得到答案。该函数可以计算任意正整数 n 的阶乘。
相关问题
6-5 递归函数求n! (10 分)
递归函数求n!的方法是将n!拆分为n*(n-1)!,然后再递归求解(n-1)!,直到n=1时返回1。具体实现可以参考以下代码:
```python
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
```
这个函数会不断调用自身,直到n=1时停止递归,返回1。在每次递归中,都会将n乘以(n-1)!的结果返回,最终得到n!的值。
c++用递归函数求n!
在C++中,使用递归函数可以简洁地计算阶乘(n!),即所有小于等于n的正整数的乘积。递归的基本思想是将大问题分解成更小的子问题,直到达到基本情况(通常是n=0或n=1,它们的阶乘分别是1)。以下是计算n阶乘的一个递归函数示例:
```cpp
#include <iostream>
// 递归函数,用于计算阶乘
unsigned long long factorial(int n) {
// 基本情况:如果n为0或1,返回1
if (n == 0 || n == 1)
return 1;
else
// 递归调用,n乘以(n-1)的阶乘
return n * factorial(n - 1);
}
int main() {
int num;
std::cout << "请输入一个非负整数: ";
std::cin >> num;
// 检查输入是否有效
if (num < 0)
std::cerr << "错误: 阶乘只对非负整数有意义.\n";
else
std::cout << "n! = " << factorial(num) << "\n";
return 0;
}
```
当你运行这个程序并输入一个数字时,它会计算并打印出那个数字的阶乘。
阅读全文