Задача

Дан массив nums с элементами типа int. Нужно вернуть количество элементов, которые состоят из чётного количества цифр.

Ограничения

  • 1 <= nums.length <= 500
  • 1 <= nums[i] <= 10^5

Примеры

Ввод: nums = [12,345,2,6,7896]
Вывод: 2
Объяснение:
12 состоит из 2 цифр (чётное количество).
345 состоит из 3 цифр (нечётное количество).
2 состоит из 1 цифры (нечётное количество).
6 состоит из 1 цифры (нечётное количество).
7896 состоит из 4 цифр (чётное количество).
Следовательно, только числа 12 и 7896 состоят из чётного количества цифр.

Ввод: nums = [555,901,482,1771]
Вывод: 1
Объяснение:
Только число 1771 состоит из чётного количества цифр.

Решение

public class FindNumbersWithEvenNumberOfDigits {
    public static void main(String[] args) {
        System.out.println(findNumbers(new int[]{12, 345, 2, 6, 7896}) == 2);
        System.out.println(findNumbers(new int[]{555, 901, 482, 1771}) == 1);
        System.out.println(findNumbers(new int[]{437,315,322,431,686,264,442}) == 0);
    }

    public static int findNumbers(int[] nums) {
        short count = 0;
        boolean even;

        for (int num : nums) {
            even = true;
            while (num > 0) {
                even = !even;
                num = num / 10;
            }
            if (even) {
                count++;
            }
        }

        return count;
    }
}

Найти элементы массива с чётным количеством цифр