java求回文数为啥这样不行啊

public class Test {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    for(int n=1000;n<10000;n++) {
        int i=n;
        int a=i/1000;
        int e=10*a;
        int b=i/100 -e;
        e = 10*(e+b);
        int c=i/10 -e;
        e = 100*(e+b+c);
        int d=i -e;
            if(a==d && b==c) {
            System.out.println(n);
        }
        
    }
    

}

}

修改如下:

public class Test {
    public static void main(String args[]) {

        for(int n=1000;n<10000;n++) {
            int i=n;
            int a=i/1000;
            int b=i/100%10;
            int c=i/10%10;
            int d=i %10;
                if(a==d && b==c) {
                System.out.println(n);
            }
            
        }
    }
}


你的逻辑是什么……
你还是把每个数输出一下看是否符合你的逻辑吧。

也可以转成字符串判断


    
public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int x = sc.nextInt();
        String num = String.valueOf(x);
        String reverse = new StringBuffer(num).reverse().toString(); //字符串反转
        if (reverse.equals(num)) {
            System.out.println("true:回文数");
        } else {
            System.out.println("false");
        }
    }
}