设计求n!的递归函数,调用该函数求s=1+1/1!+1/2!+…+1/n!
时间: 2023-06-07 20:10:25 浏览: 109
好的,我可以回答这个问题。下面是求n!的递归函数:
```
int factorial(int n) {
if (n <= 1) {
return 1;
} else {
return n * factorial(n-1);
}
}
```
接下来,使用该函数求s=1 1/1! 1/2! … 1/n! 的值:
```
double s = 0;
for (int i = 0; i < n; i++) {
s += 1.0 / factorial(i+1);
}
```
其中1.0是为了让1/factorial(i+1)的结果为浮点数,这里的n可以根据实际情况进行修改。希望能够帮到您!
相关问题
涉及求n的递归函数,调用该函数求 S=1+1/1!+1/2!+......1/n! C语言
以下是C语言中求S=1+1/1!+1/2!+......1/n!的代码,使用递归函数调用阶乘方法求和:
```c
#include <stdio.h>
int jie(int n) { // 定义递归函数求阶乘
if (n == 1) {
return 1;
} else {
return n * jie(n - 1);
}
}
int main() {
int n;
double sum = 0;
printf("请输入n的值:");
scanf("%d", &n);
if (n < 1 || n > 40) { // 判断n的范围是否合法
printf("请重新输入数据\n");
return 0;
}
for (int i = 0; i <= n; i++) { // 循环计算S的值
sum += 1.0 / jie(i);
}
printf("S的值为:%lf\n", sum);
return 0;
}
```
阶乘n!定义:n!=1(n=1);n!=n*(n-1)!(n>1) 设计求n!的递归函数,调用该函数求 S=1+1/1!+1/2!…+1/n!
以下是求阶乘n!和S=1+1/1!+1/2!…+1/n!的Python代码:
1. 求阶乘n!
```python
def fac(n):
if n == 1 or n == 0:
return 1
return n * fac(n - 1)
```
调用该函数求n!的值,例如n=5:
```python
print(fac(5)) # 输出:120
```
2. 求S=1+1/1!+1/2!…+1/n!
```python
def get_S(n):
s = 0
for i in range(n+1):
s += 1/fac(i)
return s
```
调用该函数求S的值,例如n=3:
```python
print(get_S(3)) # 输出:1.375
```
阅读全文