Код следующий, все решает, все выводит, но при проверке сообщается что вывод не соответствует заданному, и посчитано неверно. Я не могу понять в чем ошибка у этого алгоритма. Задачу решил с помощью другого, но не найду покоя пока не пойму в чем здесь косяк.
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        //забираем число по модулю
        int number = Math.abs(Integer.parseInt(reader.readLine()));
        //если ноль записываем в четные
        if (number == 0)
            even++;
        for(int i = 0; i < number; i++)
        {
            //берем последнее число ряда
            int x = number%10;
            //проверяем на четность
            int z = x % 2;
            if (z == 0)
            even++;
            else
            odd++;
            //отсекаем последнее число ряда
            number = number / 10;
        }
        System.out.println("Even: " + even + " Odd: " + odd);