"Ввести с клавиатуры число. Определить, сколько в введенном числе четных цифр, а сколько нечетных."
В первом варианте решения либо не учитывается "0" как четное, либо другое число, например, "999", считается как две нечетные цифры.
В обоих случаях делится ноль на 2. В обоих случаях количество итераций соотносится с длинной строки (длинной массива). Помогите разобраться почему.
int a = Integer.parseInt(reader.readLine());
for (int i = 0; i < String.valueOf(a).length(); i++) {
if (a % 2 == 0)
even++;
else
odd++;
a /= 10;
}
А вот в этом варианте "0" учитывается:
char[] chars = stringNumbers.toCharArray();
for (int i = 0; i < stringNumbers.length; i++) {
if(chars[i]%2==0) {
even++;
}
else if (chars[i]%2!=0) {
odd++;
}
}