给定自然数N和M,求N的最后M位数字之和,现有JS实现报错求解决方案
问题分析&代码修正
原代码存在的问题
- 语法错误:
res.[length-1]属于非法写法,且仅获取了最后1位数字,没有覆盖需要的M位范围 - 逻辑完全不符合需求:原返回值是N和最后1位数字的乘积,不是最后M位的数字总和
修正后的实现
const SumOfNum = (N, M) => { // 将自然数N转为字符串方便逐位处理 const numStr = N.toString() // 截取最后M位,若N的总位数不足M则取全部内容 const lastMPart = numStr.slice(-M) // 逐位转数字后累加求和 return lastMPart.split('').reduce((total, cur) => total + Number(cur), 0) }
测试用例验证
- 输入
SumOfNum(123456, 3),最后3位数字为4、5、6,返回结果为15 - 输入
SumOfNum(789, 5),N总位数不足5,取全部数字7、8、9,返回结果为24
内容的提问来源于stack exchange,提问作者user16349989
相关产品推荐
相关产品推荐

