下面函数的功能是计算s=1+1/(1*2)+1/(1*2*3)+...+1/(1*2*3*...*n),请填空。 double+fun(int+n) { +____+s=0.0,fac=1.0
时间: 2024-04-05 15:26:04 浏览: 17
```c
double fun(int n)
{
double s = 0.0, fac = 1.0;
for (int i = 1; i <= n; i++)
{
fac *= i;
s += 1 / fac;
}
return s;
}
```
相关问题
计算s=1+1/2+1/3+...+1/10
根据提供的公式s=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…+n),可以得到计算s=1+1/2+1/3+...+1/10的公式为s=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…+10)。因此,我们可以调用fun()函数来计算s的值。
```c
#include <stdio.h>
double fun(double n);
int main() {
double n = 10;
double s = fun(n);
printf("s = %f", s); // 输出:s = 2.928968
return 0;
}
double fun(double n) {
double s = 0;
double a = 0;
for (int i = 1; i <= n; i++) {
a += i;
s += 1 / a;
}
return s + 1;
}
```
编写函数计算s=1+1/2!+1/3!+…+1/n!
函数sum可以计算s=1+1/2!+1/3!+…+1/n!,其中n由终端输入,n!的计算在函数fac中实现。函数sum的代码如下:
```
double sum(int n) {
double s = 1.0;
for (int i = 2; i <= n; i++) {
s += 1.0 / fac(i);
}
return s;
}
```
其中,fac函数的定义如下:
```
int fac(int n) {
int f = 1;
for (int i = 2; i <= n; i++) {
f *= i;
}
return f;
}
```