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

如何用while循环实现数字各位反复求和至个位数(示例:55555得7)

数字各位反复求和功能的While循环实现

需求是实现数字各位反复求和:对数字各位求和后,若结果≥10则继续对该结果的各位求和,直至得到个位数。例如输入"55555",先求得各位和为25,再求和得到最终结果7。原代码使用递归实现,现改为while循环完成。

实现代码

function createCheckDigit(membershipId) {
    let currentValue = membershipId;
    // 外层循环:只要当前值不是个位数就继续处理
    while (currentValue.length > 1) {
        let sum = 0;
        let index = 0;
        // 内层while循环计算当前值的各位和
        while (index < currentValue.length) {
            sum += parseInt(currentValue[index], 10);
            index++;
        }
        // 将求和结果转为字符串,用于下一轮循环
        currentValue = sum.toString();
    }
    // 返回最终的个位数
    return parseInt(currentValue, 10);
}

// 测试示例
console.log(createCheckDigit("55555")); // 输出7

代码说明

  • 外层while循环通过判断字符串长度是否大于1,确定是否需要继续求和(长度>1意味着数字≥10)
  • 内层while循环遍历当前字符串的每一位字符,转换为整数后累加求和
  • 每次求和完成后,将结果转为字符串,作为下一轮循环的处理对象
  • 当字符串长度为1时,说明已经得到个位数,转换为整数后返回

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:40:23