求分数序列前N项和
题目描述编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
输入
输入在一行中给出一个正整数N。
输出
在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。
输入样例1
20
输出样例1
32.66
本帖最后由 歌者文明清理员 于 2023-4-19 19:13 编辑
n = int(input())
fz = 2
fm = 1
tot = 0
for i in range(n):
fs = fz / fm
fz, fm = fz + fm, fz
tot += fs
print(f'{tot:.2f}')
def fraction_series_sum(n: int) -> float:
numerator, denominator = 2, 1
result = 0
for _ in range(n):
result += numerator / denominator
numerator, denominator = numerator + denominator, numerator
return round(result, 2)
# 读取输入数据
n = int(input().strip())
# 计算前N项和
result = fraction_series_sum(n)
# 输出结果,精确到小数点后两位
print(f"{result:.2f}")
该程序首先定义一个函数fraction_series_sum来计算前N项和。然后,从输入中读取正整数N,计算结果并输出。结果会保留两位小数。
页:
[1]