原題鏈接
2180. 統(tǒng)計(jì)各位數(shù)字之和為偶數(shù)的整數(shù)個(gè)數(shù)
解題思路:
視頻題解
- 該題需要計(jì)算的是
1到num中,共有幾個(gè)數(shù)每個(gè)位數(shù)加和為偶數(shù)
a. 例如數(shù)字24,即為2 + 4 = 6,符合條件,總數(shù)加1
b. 例如數(shù)字12,即為1 + 2 = 3,不符合條件
/**
* @param {number} num
* @return {number}
*/
var countEven = function(num) {
let res = 0 // 存儲(chǔ)結(jié)果
// 正整數(shù)意味著從1遍歷到num
for (let i = 1; i <= num; i++) {
let curr = i // 緩存當(dāng)前數(shù)字
let sum = 0 // 計(jì)算當(dāng)前數(shù)字的每一位之和
// 不斷循環(huán)直到計(jì)算完所有位的數(shù)字之和
while (curr) {
// 每次取出個(gè)位數(shù)
const num = curr % 10
// 計(jì)算每一位之和
sum += num
// 取出個(gè)位數(shù)之后,將數(shù)字向右移動(dòng)一位
curr = Math.floor(curr / 10)
}
// 如果所有位的數(shù)字之和為偶數(shù),就統(tǒng)計(jì)一次
if (sum % 2 === 0) {
res++
}
}
return res
};