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 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/count-integers-with-even-digit-sum/
2. 思路分析:
分析题目可以知道暴力枚举[1,num]范围内的所有数字,判断是否满足题目要求即可。
3. 代码如下:
class Solution:
# 求解x对应的十进制各位数字之和
def solve(self, x: int):
res = 0
while x > 0:
res += x % 10
x //= 10
return res % 2 == 0
def countEven(self, num: int) -> int:
res = 0
for i in range(1, num + 1):
if self.solve(i): res += 1
return res
|