已知数列1,1/3,1/5,1/7,…,求出其前n项之和,其中的实型变量用double类型。 输入格式: 输入n的值,一个正整数。 输出格式: 以保留两位小数的形式输出数列前n项的和并换行。 输入样例: 3 输出样例: 1.53 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB C (gcc) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include<stdio.h> #define·N·30 int·a[N]; int·main(){ ····int·n; ····int·sum=0; ····a[0]·=·1; ····a[1]·=·1; ····a[2]·=·2; ····scanf("%d",&n); ····for(int·j·=3;j<=n;j++){ ········a[j]·=·a[j-1]+a[j-2]+a[j-3];· ····} ····for(int·i=0;i<n;i++){ ········sum·=·sum·+a[i]; ····} ····printf("sum·=·%d",sum); ····return·0; } 测试用例
时间: 2023-12-10 10:03:47 浏览: 131
Centos openssh7.4p1升级到9.3p1的rpm安装包
根据题意,数列的前n项为1,1/3,1/5,1/7,...,可以使用一个循环来计算前n项之和。具体实现如下:
```c
#include <stdio.h>
int main() {
int n;
double sum = 0.0;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += 1.0 / (2 * i - 1);
}
printf("%.2f\n", sum);
return 0;
}
```
上面的代码中,我们使用了一个变量`sum`来保存前n项之和。在循环中,我们每次累加数列中的一个元素,即1/(2i-1),最后输出`sum`即可。
需要注意的是,我们使用了`double`类型来保存前n项之和,并在输出时保留了两位小数。
阅读全文