You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

分数求和程序错误排查:求n/1+(n-1)/2+…+1/n的和结果不符

问题分析与修正

你的代码存在两个核心错误,直接导致结果偏离预期:

  • 循环范围错误:原代码用range(1, n-1),当n=6时,循环仅执行i=1、2、3、4这4次,但求和式需要覆盖分母从1到n的共n项,正确的循环范围应为range(1, n+1)(因为Python的range是左闭右开区间)。
  • 求和项表达式错误:原代码里的i/1完全不符合求和规则,每一项的分子应该是n - i + 1,分母是i。比如i=1时对应n/1,i=2时对应(n-1)/2,直到i=n时对应1/n。

修正后的代码

n = int(input("Please enter a positive integer: "))

sum2 = 0.0

for i in range(1, n + 1):
    sum2 += (n - i + 1) / i

print(f"For n = {n} the sum n/1 + (n-1)/2 + ... 1/n is {sum2:.2f}")

输入n=6时,计算过程为:6/1 + 5/2 + 4/3 + 3/4 + 2/5 + 1/6 = 6 + 2.5 + 1.333... + 0.75 + 0.4 + 0.166... ≈ 11.15,与预期结果一致。

内容的提问来源于stack exchange,提问作者bee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 20:15:17