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

JavaScript循环计算分数序列和代码运行结果不符求助

问题原因

你现有代码的问题主要出在两个地方:

  • 求和项计算逻辑错误:当前你使用的fraction /= (number - counter)是累除操作,第一次运行得到1/5后,第二次运行会变成1/5 /4 = 1/(5*4),并非你需要的1/4,完全不符合目标求和项的要求
  • 循环边界错误:循环条件counter <= number会导致counter等于number时,number - counter取值为0,出现除以0的异常,最终得到错误的无穷大结果
  • 额外说明:你不需要用parseFloat处理小数,JS中整数做除法运算会自动返回浮点数结果

修复后可运行代码

var sum = 0;
var number = parseInt(prompt("Enter an integer: ", "5"));

// 直接遍历分母从n到1,每次累加对应项
for (var counter = number; counter >= 1; counter--) {
    sum += 1 / counter;
}     
document.write("The total value is " + sum);

封装为fractionSum函数版本

function fractionSum(n) {
    let sum = 0;
    for (let i = n; i >= 1; i--) {
        sum += 1 / i;
    }
    return sum;
}

// 测试
console.log(fractionSum(5)) // 输出 2.283333333333333

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:54:03