Run ID:140885
提交时间:2025-12-20 14:16:27
# 求分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13... 的前n项和 def fibonacci_fraction_sum_simple(n): if n <= 0: return 0.0 # 生成斐波那契数列:1, 2, 3, 5, 8, 13, 21, 34... # 我们需要前n+1个斐波那契数 fib = [0, 1] # 初始化:F0=0, F1=1(标准的斐波那契定义) for i in range(2, n + 2): # 生成到F(n+1) fib.append(fib[i - 1] + fib[i - 2]) # 计算前n项和 # 第i项 = F(i+2)/F(i+1),其中i从1开始 # 但我们的序列从F3/F2开始,所以调整索引 total = 0.0 for i in range(1, n + 1): # 第i项的分子是F(i+2),分母是F(i+1) total += fib[i + 2] / fib[i + 1] return total # 或者更直接的方法:直接模拟分数序列 def fibonacci_fraction_sum_direct(n): if n <= 0: return 0.0 a, b = 1, 2 # 初始化分母和分子:第一项是 2/1 total = 0.0 for _ in range(n): total += b / a # 更新:新的分母 = 旧的分子,新的分子 = 旧的分母 + 旧的分子 a, b = b, a + b return total # 获取输入 n = int(input()) # 计算并输出结果 result = fibonacci_fraction_sum_direct(n) rounded_result = round(result, 4) # 格式化为4位小数输出(根据示例) print( rounded_result )