用递归函数求n个阶乘的和
时间: 2024-03-02 07:54:23 浏览: 77
好的,下面是求n个阶乘的和的递归函数:
```python
def sum_factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1) + sum_factorial(n-1)
```
其中,`factorial(n)` 是求 n 的阶乘的函数。
相关问题
用递归函数求n的阶乘
以下是两种用递归函数求n的阶乘的例子:
引用中的C语言代码实现:
```c
#include <stdio.h>
//递归求n的阶乘
int factorial(long n) {
if (n <= 1) { //0,1的阶乘为1
return 1;
} else {
long m = n * factorial(n - 1); //递归
return m;
}
}
int main() {
int n = 0;
long ret = 0;
printf("请输入一个数:");
scanf("%d", &n);
ret = factorial(n);
printf("此数的阶乘为:%d\n", ret);
return 0;
}
```
引用中的C语言代码实现:
```c
#include <stdio.h>
int fac(int n); //声明函数
int main() {
int n, y; //定义变量
printf("请输入一个整数:"); //提示输入
scanf("%d", &n); //输入要求阶乘的数
y = fac(n);
printf("%d! = %d", n, y);
return 0;
}
int fac(int n) { //定义fac函数
int f;
if (n < 0) {
printf("data error!"); //负数没有阶乘
} else if (n == 0 || n == 1) {
f = 1; //0和1的阶乘都是1
} else {
f = n * fac(n - 1); //当n>1时,n! = n*(n-1)
}
return f;
}
```
用递归函数求n的阶乘的算法思想
递归函数求n的阶乘的算法思想是:将n的阶乘问题转化为n-1的阶乘问题,然后再将n-1的阶乘问题转化为n-2的阶乘问题,直到转化成1的阶乘问题。最后,1的阶乘为1,递归函数开始返回,依次将各阶乘结果相乘,得到n的阶乘。
具体实现如下:
1.定义一个函数factorial(n),该函数接受一个正整数n作为参数。
2.如果n等于1,则直接返回1;否则,递归调用factorial(n-1)函数,将返回的结果与n相乘,得到n的阶乘。
3.代码如下:
```
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
```
4.测试代码:
```
print(factorial(5)) # 输出120
print(factorial(10)) # 输出3628800
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)