通过函数求级数a=2/1 +3/2+5/3+8/5+13/8+21/13···的n项之和,n通过函数参数传递。在主函数中输入n,调用函数输出结果。如输入4,结果为:6.77c语言
时间: 2023-12-12 19:07:45 浏览: 72
labview .vi 求分数序列2/1+3/2+5/3+13/8...前200项之和
下面是求解级数的代码:
```c
#include <stdio.h>
#include <stdlib.h>
double sum(int n) {
double a = 2.0, b = 1.0, c, s = 0.0;
int i;
for (i = 1; i <= n; i++) {
s += a / b;
c = a + b;
b = a;
a = c;
}
return s;
}
int main() {
int n;
printf("请输入n的值:");
scanf("%d", &n);
printf("前%d项和为:%.2lf\n", n, sum(n));
return 0;
}
```
上述代码中,`sum` 函数用于求解级数的前 `n` 项之和,其中 `a` 和 `b` 分别表示级数中的两个数列,`s` 表示前 `n` 项和。在 `for` 循环中,我们使用斐波那契数列的特点,依次计算每一项的值,并将其加到 `s` 中。最后返回 `s` 即可。
在 `main` 函数中,我们通过 `scanf` 函数获取用户输入的 `n` 的值,并调用 `sum` 函数计算级数前 `n` 项的和。最后输出结果即可。
阅读全文