如何用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
相关产品推荐
相关产品推荐

