这是第28篇算法,力扣链接
给你一个正整数
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 。
看到这道题,最暴力的方法无非是从2到n遍历一遍,这个暴力逻辑可以直接上代码:
func countEven(num int) int {
result := 0
for i := 2; i <= num; i++ {
if checkNum(i) {
result++
}
}
return result
}
func checkNum(num int) bool {
result := 0
for num > 0 {
result += num % 10
num /= 10
}
return result%2 == 0
}