跳到主要内容

2180.统计各位数字之和为偶数的整数个数

· 阅读需 2 分钟

1、题干

给你一个正整数 num ,请你统计并返回 小于或等于 num 且各位数字之和为 偶数 的正整数的数目。

正整数的 各位数字之和 是其所有位上的对应数字相加的结果。

 

示例 1:

输入:num = 4
输出:2
解释:
只有 2 和 4 满足小于等于 4 且各位数字之和为偶数。

示例 2:

输入:num = 30
输出:14
解释:
只有 14 个整数满足小于等于 30 且各位数字之和为偶数,分别是:
2、4、6、8、11、13、15、17、19、20、22、24、26 和 28 。

 

提示:

  • 1 <= num <= 1000

2、思路

根据题意模拟

3、代码

function countEven(num: number): number {
let ans = 0;
for (let n = 1; n <= num; n++) {
for (let k = n, sum = 0; k; k = k / 10 >> 0) {
sum += k % 10;
if (k < 10 && sum % 2 === 0) ans += 1;
}
}
return ans;
};

4、复杂度

  • 时间复杂度:O(nlogn)O(nlogn)
  • 空间复杂度:O(1)O(1)

5、执行结果

image.png