Run ID:140880

提交时间:2025-12-20 14:12:34

# 求分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13... 的前n项和 def fibonacci_fraction_sum(n): if n <= 0: return 0.0 # 初始化前两个分子和分母 numerator_prev2 = 2 # 第一个分子 denominator_prev2 = 1 # 第一个分母 if n == 1: return numerator_prev2 / denominator_prev2 numerator_prev1 = 3 # 第二个分子 denominator_prev1 = 2 # 第二个分母 # 计算前两项和 total = numerator_prev2 / denominator_prev2 + numerator_prev1 / denominator_prev1 # 从第三项开始计算 for i in range(3, n + 1): # 当前项的分子 = 前一项分子 + 前一项分母 numerator_current = numerator_prev1 + denominator_prev1 # 当前项的分母 = 前一项分子 denominator_current = numerator_prev1 # 累加当前项 total += numerator_current / denominator_current # 更新前两项的值 numerator_prev1, numerator_prev2 = numerator_current, numerator_prev1 denominator_prev1, denominator_prev2 = denominator_current, denominator_prev1 return total # 更简洁的实现版本(利用斐波那契数列特性) def fibonacci_fraction_sum_simple(n): if n <= 0: return 0.0 # 生成斐波那契数列 fib = [1, 2] # 从F1=1, F2=2开始 for i in range(2, n + 2): fib.append(fib[i-1] + fib[i-2]) # 计算前n项和 total = 0.0 for i in range(1, n + 1): total += fib[i+1] / fib[i] # 第i项的分子是F(i+2),分母是F(i+1) return total # 获取输入 n = int(input()) # 计算并输出结果 result = fibonacci_fraction_sum_simple(n) # 格式化为4位小数输出(根据示例) print(result)