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

JS拆分阿姆斯特朗数153数位时n3计算错误问题求解

三位数数位拆分问题解答

问题根源

你的n3计算逻辑存在两个问题:

  • JavaScript的/是浮点数除法,不会自动截断小数部分。代入n=153计算时,((153 - 3)/10)/10 = 15/10 = 1.5,无法得到整数型的百位值1。
  • 现有逻辑没有对最高位做%10取余处理,一旦需要拆分四位数及以上的数值,计算结果会混入更高位的数值,完全不符合预期。
    另外你写的n2计算逻辑可以简化,不需要先减去n1再做除法,直接先整除再取余的写法更简洁,也不容易出错。

修正代码

推荐统一用「整除后取余」的规则计算每一位,不管是三位数还是更多位的数字都能兼容:

let n = 153
let n1 = n % 10; // 个位:153%10=3
let n2 = Math.floor(n / 10) % 10; // 十位:153/10取整为15,15%10=5
let n3 = Math.floor(n / 100) % 10; // 百位:153/100取整为1,1%10=1

如果确定代码只处理三位数,n3也可以简化为Math.floor(n / 100),省略取余步骤。
运行后三个值分别为3、5、1,完全符合数位拆分的预期,后续直接计算三个数的立方和即可完成阿姆斯特朗数的校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:09:21