pdl666 发表于 2023-4-19 19:02:29

求分数序列前N项和

题目描述

编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。


输入

输入在一行中给出一个正整数N。



输出

在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。




输入样例1
20



输出样例1
32.66

歌者文明清理员 发表于 2023-4-19 19:04:27

本帖最后由 歌者文明清理员 于 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}')

isdkz 发表于 2023-4-19 19:07:28

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]
查看完整版本: 求分数序列前N项和