carloscn / structstudy

Leetcode daily trainning by using C/C++/RUST programming.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

leetcode2180: Count Integers With Even Digit Sum

carloscn opened this issue · comments

Description

Given a positive integer num, return the number of positive integers less than or equal to num whose digit sums are even.

The digit sum of a positive integer is the sum of all its digits.

Example 1:

Input: num = 4
Output: 2
Explanation:
The only integers less than or equal to 4 whose digit sums are even are 2 and 4.

Example 2:

Input: num = 30
Output: 14
Explanation:
The 14 integers less than or equal to 30 whose digit sums are even are
2, 4, 6, 8, 11, 13, 15, 17, 19, 20, 22, 24, 26, and 28.

Constraints:

1 <= num <= 1000

Analysis

int32_t count_even(int32_t num)
{
    int32_t ret = 0;

    if (0 == num) {
        return ret;
    }

    for (int32_t i = 1; i <= num; i ++) {
        int32_t e = 0;
        int32_t s = 0;
        int32_t j = i;
        while (j != 0) {
            e = j % 10;
            j = j / 10;
            s += e;
        }
        if (!(s & 1)) {
            ret += 1;
        }
    }

    return ret;
}