解题思路:
视频题解
- 该题需要计算的是
1
到num
中,共有几个数每个位数加和为偶数
a. 例如数字24
,即为2 + 4 = 6
,符合条件,总数加1
b. 例如数字12
,即为1 + 2 = 3
,不符合条件
/**
* @param {number} num
* @return {number}
*/
var countEven = function(num) {
let res = 0 // 存储结果
// 正整数意味着从1遍历到num
for (let i = 1; i <= num; i++) {
let curr = i // 缓存当前数字
let sum = 0 // 计算当前数字的每一位之和
// 不断循环直到计算完所有位的数字之和
while (curr) {
// 每次取出个位数
const num = curr % 10
// 计算每一位之和
sum += num
// 取出个位数之后,将数字向右移动一位
curr = Math.floor(curr / 10)
}
// 如果所有位的数字之和为偶数,就统计一次
if (sum % 2 === 0) {
res++
}
}
return res
};