Я решил данную задачу двумя способами. Через if , else все вышло хорошо. Через тернарный оператор пошло криво. Если кто знает, помогите разобраться, что не так.
If - else
public class Solution {
public static int even;
public static int odd;
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(reader.readLine());
while (a > 0) {
if (a % 2 == 0){ even ++; }
else if (a % 2 != 0){ odd++; }
a /= 10;
}
System.out.println("Even: " + even + " Odd: " + odd);
}
}
Вывод при вводе 221 : even = 2; odd = 1;
Тернарный оператор while (a > 0) {
even = (a % 2 == 0) ? 1:0;
odd = (a % 2 != 0) ? 1:0;
a /= 10;
}
Вывод при вводе 221 : even = 1; odd = 0;
Я также пробовал написать вместо even = (a % 2 == 0) ? 1:0;
odd = (a % 2 != 0) ? 1:0;
even = (a % 2 == 0) ? even++:0;
odd = (a % 2 != 0) ? odd++:0;
Но все равно тот же результат.