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

HTML回文判断程序输入111误判且reversed为infinity问题求助

问题根因
  • 类型不匹配:通过document.querySelector("#userInput").value拿到的输入值是字符串类型,直接赋值给temp参与算术运算存在隐式转换隐患。
  • 循环未做取整处理:你没有对temp / 10的结果做取整操作,输入111时第一次运算后temp值为11.1而非11,后续会依次生成1.11、0.111、0.0111这类正小数,永远满足temp > 0的判断条件,触发死循环。reversed变量在死循环中持续乘10累加,最终超过JavaScript可表示的最大数值范围,输出为infinity。
修复后的代码
function Palindrome() {
    // 先将输入值转为数字类型
    let input = Number(document.querySelector("#userInput").value);
    let temp = input;
    let reversed = 0;

    while (temp > 0) {
        const lastDigit = temp % 10;
        reversed = (reversed * 10) + lastDigit;
        // 除以10后取整,保证temp最终会降到0
        temp = Math.floor(temp / 10);
    }
    if (input == reversed) {
        document.querySelector("#answer").innerHTML = `This is a Palindrome `;
    }else {
        document.querySelector("#answer").innerHTML = `This is not a Palindrome ${input} ${temp} ${reversed} `;
    }
}
验证效果

输入111时,temp会依次变为11、1、0,循环正常退出,reversed最终计算结果为111,可正确判定为回文。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:24:03