Если пишу задачу так, то цикл отрабатывает нужное количество раз и задача решается.
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));
String x = reader.readLine();
int y = x.length();
//System.out.println(x.length());
for (int i = 0; i < y; i++) {
if ((Integer.parseInt(x) % 10)%2 == 0) {
even++;
x = String.valueOf(Integer.parseInt(x) / 10);
System.out.println(x);
}
else{
odd++;
x = String.valueOf(Integer.parseInt(x) / 10);
System.out.println(x);
}
}
System.out.println("Четных " + even);
System.out.println("Нечетных " + odd);
}
}
А, если напишу, как положено:
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));
String x = reader.readLine();
//int y = x.length();
//System.out.println(x.length());
for (int i = 0; i < x.length(); i++) {
if ((Integer.parseInt(x) % 10)%2 == 0) {
even++;
x = String.valueOf(Integer.parseInt(x) / 10);
System.out.println(x);
}
else{
odd++;
x = String.valueOf(Integer.parseInt(x) / 10);
System.out.println(x);
}
}
System.out.println("Четных " + even);
System.out.println("Нечетных " + odd);
}
}
то ответ получается, как будто счетчик не доходит до конца, хотя x.length выводит правильное число
помогите разобраться, где я чего-то не понимаю?