Как всегда убогий, но работающий код. При проверке выдает, что якобы не срабатывает условие "Если число нечетное и имеет три цифры, вывести "нечетное трехзначное число"."
public class Solution {
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
        String a = reader.readLine();
        int x = Integer.parseInt(a);
        if ((x>=1)&&(x<999)){
            if (x%2==0){
                System.out.print("четное ");
            }else{
                System.out.print("нечетное ");
            }

            int x2=x;
            int z = 1;
            for (int c = 1; x2>0; c++){
                x2=x2/10;
                z = c;
            }
            if (z==1){
                System.out.print("однозначное число");
            }else{
                if (z==2){
                    System.out.print("двузначное число");
                }else{
                        System.out.print("трехзначное число");
                }
            }
        }
    }
}