本題要求編寫程序,計算序列 1 + 1/3 + 1/5 + ... 的前N項之和。
輸入格式:
輸入在一行中給出一個正整數N。
輸出格式:
在一行中按照“sum = S”的格式輸出部分和的值S,精確到小數點后6位。題目保證計算結果不超過雙精度范圍。
輸入樣例:
23
輸出樣例:
sum = 2.549541
代碼:
#include <stdio.h>
int main()
{
int n;//項數
double sum = 0;//初始化 sum
scanf("%d", &n);
for (int x = 1; x <= 2 * n - 1; x += 2)
//x 為分母的值,由題可知第 n 項的分母與 n 構成如下關系:
//x = 2 * n - 1
{
sum += 1.0 / x;//累加求和
}
printf("sum = %.6lf", sum);//精確到小數點后 6 位
return 0;
}
提交截圖:
解題思路:
定義 int 類型的變量 n 存放所求的項數
定義 double 類型的變量 sum 并將它初始化為 0,用于存儲前 N 項之和
定義 int 類型的變量 x 作為分母,并初始化為 1。由于 x 為奇數,所以在每次循環后加 2
尋找第 n 項的分母 x 與 n 相等的臨界條件
通過循環去改變分母并使 sum 自加,進而達到求和的目的
相同題型:求簡單交錯序列前N項和