用阶乘n!定义: 1!=1 n!=n(n-1)! (n>1) 设计求n!的递归函数,调用该函数求s=1+1/1!+1/2!+…+1/n!
时间: 2023-11-25 22:07:42 浏览: 96
递归函数求n的阶乘
5星 · 资源好评率100%
根据引用中的公式f(n)=n*f(n-1),可以设计一个递归函数来求n的阶乘。具体实现如下:
```c
float fac(int n) {
if (n == 1 || n == 0) {
return 1;
}
return n * fac(n - 1);
}
```
接下来,根据引用中的公式s=n!+(n+1)!+(n+2)!+...+m!,可以设计一个循环来计算s。具体实现如下:
```c
float getfac_s(int m, int n) {
int i;
float s = 1, sum = 0;
for (i = 1; i <= m; i++) {
s = s * i;
if (i >= n) {
sum += s;
}
}
return sum;
}
```
最后,根据题目要求,求s=1+1/1!+1/2!+…+1/n!,可以使用上述两个函数来计算。具体实现如下:
```c
float get_s(int n) {
int i;
float s = 0;
for (i = 0; i <= n; i++) {
s += 1 / fac(i);
}
return s;
}
```
阅读全文