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

为何在JavaScript中无法让5的幂递增到200上限(缺失125)?

JavaScript幂运算循环问题修复

你的需求是输出5的幂次,直到结果不超过200,预期得到5、25、125,但现有代码只输出前两个,问题出在循环逻辑错误:

原代码中y **= (x++)的操作是将当前y的值作为底数,进行x次方运算后重新赋值给y,而非计算5的x次方:

  • 第一次循环:x=1,y=5**1=5,z=5,输出5,x变为2
  • 第二次循环:x=2,y=5**2=25,z=25,输出25,x变为3
  • 第三次循环前判断z=25<=200,条件满足,但执行y **= x++时,y已变为25,计算25**3=15625,z=15625远大于200,循环体(console.log(z))不会执行,因此看不到125

修正方案1:直接计算5的x次方

无需修改y的值,每次循环计算5的x次方,判断是否符合条件:

for (let x = 1; ; x++) {
  const z = 5 ** x;
  if (z > 200) break;
  console.log(z);
}

修正方案2:累积乘法(更高效)

每次将结果乘以5,直到超过200:

let z = 5;
while (z <= 200) {
  console.log(z);
  z *= 5;
}

这两种方式都能正确输出5、25、125。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 14:17:41