C语言,本关任务:编写函数fun(),实现计算并返回多项式s=1+1/(1+2)+1/(1+2+3)+ ...+1/(1+2+3+...+n)的值。
时间: 2023-09-11 20:07:18 浏览: 117
【C语言】1+2+3+...+n的值
参考代码如下:
```c
#include <stdio.h>
double fun(int n) {
double s = 1.0;
int i, j;
for (i = 2; i <= n; i++) { // 外层循环从2到n
double p = 1.0;
for (j = 2; j <= i; j++) { // 内层循环从2到i
p *= j; // 计算分母
}
s += 1.0 / p; // 累加每一项的值
}
return s;
}
int main() {
int n;
printf("请输入n的值:");
scanf("%d", &n);
double s = fun(n);
printf("多项式的值为:%lf\n", s);
return 0;
}
```
在这个程序中,我们定义了一个 `fun` 函数,它接受一个整数参数 `n`,表示多项式的项数,计算并返回多项式的值。具体实现中,我们使用了两个嵌套的循环来计算每一项的值,外层循环从 2 到 n,内层循环从 2 到当前项数 i,计算每一项的分母,然后将 1.0 / p 加到累加器 s 中。最后,函数返回累加器的值。在 `main` 函数中,我们读入 n 的值,调用 `fun` 函数计算多项式的值,并输出结果。
阅读全文