数列求和 1 题目描述 输入一个整数 n,输出数列 1+1/3+1/5+……前 n 项的和。 输入描述 输入只有一个正整数 n。 输出描述 结果保留 2 为小数,单独占一行
时间: 2024-10-24 20:14:01 浏览: 85
要计算这个数列 \(1 + \frac{1}{3} + \frac{1}{5} + \ldots\) 的前 n 项和,这是一个著名的调和级数的部分和,通常用莱布尼茨公式(Leibniz formula for pi)的形式表示,即:
\[ S_n = \sum_{k=1}^n \frac{1}{2k-1} \]
对于每一个正整数 k,分母是 \(2k - 1\),是一个奇数。为了计算这些分数的总和,我们可以使用循环结构来逐步累加每个分数。
以下是一个简单的 C 语言程序,用于计算这个序列的前 n 项和:
```c
#include <stdio.h>
double harmonic_sum(int n) {
double sum = 0;
for (int i = 1; i <= n; ++i) {
sum += 1 / (2 * i - 1);
}
return sum;
}
int main() {
int n;
printf("Enter the value of n: ");
scanf("%d", &n);
double result = harmonic_sum(n);
printf("The sum of the first %d terms is %.2f\n", n, result);
return 0;
}
```
在这个程序中,`harmonic_sum` 函数负责计算和,`main` 函数则接收用户的输入并打印结果。结果保留两位小数,由 `%.2f` 控制。
如果你需要编译和运行这段代码,确保已经包含了 `<stdio.h>` 文件头,因为里面定义了标准输入输出函数。
阅读全文