📅  最后修改于: 2023-12-03 15:11:40.095000             🧑  作者: Mango
给定一个数字N,编写一个函数,返回小于或等于N的数字中每个数字的数字总和。
例如,给定数字N为123,它的数字总和为1+2+3=6。同样,给定数字N为9876,它的数字总和为9+8+7+6=30。
该算法的思路非常简单。我们首先将数字N转换为字符串,然后遍历该字符串中的每个字符,并将它们转换为数字。最后加上这些数字的总和以得到所需的结果。
算法的步骤如下:
将数字N转换为字符串。
定义一个计数器sum
并将其初始化为0。
遍历该字符串中的每个字符,将其转换为数字并将其加到计数器中。
返回sum
作为结果。
以下是用JavaScript实现算法的示例代码:
/**
* @param {number} n
* @return {number}
*/
var digitSum = function(n) {
var str = n.toString();
var sum = 0;
for (var i = 0; i < str.length; i++) {
sum += parseInt(str[i]);
}
return sum;
};
以下是一些测试样例,用于验证上述算法的正确性:
console.log(digitSum(123)); // 输出6
console.log(digitSum(9876)); // 输出30
console.log(digitSum(0)); // 输出0
console.log(digitSum(1)); // 输出1
console.log(digitSum(123456789)); // 输出45