2025-03-17 学习记录--C/C++-PTA 习题4-3 求分数序列前N项和
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻
一、题目描述 ⭐️
习题4-3 求分数序列前N项和
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。
输入样例:
20
输出样例:
32.66
二、代码(C语言)⭐️
#include <stdio.h> // 包含标准输入输出库,用于使用scanf和printf等函数
int main() {
int n; // 定义变量n,用于存储用户输入的整数(表示计算的项数)
scanf("%d", &n); // 从用户输入中读取一个整数,赋值给n
double fenZi = 2.0, // 定义变量fenZi,表示分子,初始值为2.0
fenMu = 1.0, // 定义变量fenMu,表示分母,初始值为1.0
sum = 0.0; // 定义变量sum,用于存储累加结果,初始值为0.0
// 使用for循环计算前n项的和
for (int i = 0; i < n; i++) {
sum += fenZi / fenMu; // 将当前项的值(fenZi / fenMu)累加到sum中
double temp = fenZi; // 定义临时变量temp,存储当前的分子
fenZi += fenMu; // 更新分子:fenZi = fenZi + fenMu
fenMu = temp; // 更新分母:fenMu = 原分子(temp)
}
// 输出sum的值,保留两位小数
printf("%.2f", sum);
return 0; // 程序正常结束
}