题目

从标准输入读入一个整数 n,判断其是否为回文整数(即正反读完全一致的数字)。

输入格式:一行输入一个整数 n。

输出格式:若为回文数输出 yes,否则输出 no,末尾换行。

数据范围与约定:-2×109 ≤ n ≤ 2×109。

思路与算法

1. 负数判定
负数带负号,如 -121 反转后为 121-,故所有负数必然不是回文数。

2. 反转整数对比
拷贝原数 t = n,利用 rev = rev * 10 + t % 10; t /= 10; 构造完整反转数值,最后比较 rev == n。注意反转过程建议使用 long 防止溢出。

完整程序

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        // 负数带负号,不是回文数
        if (n < 0) {
            System.out.println("no");
            return;
        }

        int orig = n;
        long rev = 0;

        // 反转整数对比
        while (n > 0) {
            rev = rev * 10 + n % 10;
            n /= 10;
        }

        System.out.println(rev == orig ? "yes" : "no");
    }
}

运行示例

输入:

12321

输出:

yes