这是我刷蓝桥杯题库时遇到的一道题

首先,回文数就是你从左边开始,读出来的数=从右边开始读出来的数相等,称为回文数

例如:1221、1111、2112 这些都是回文数

下面贴上回文数的代码

import java.util.Scanner;

public class St01 {

	public static void main(String[] args) {
		//这是100到1000的所有回文数
		for (int i = 100; i <1000; i++) {
			int gewei = i % 10;
			int shiwei = i/10%10;
			int baiwei = i/100;
			if (gewei==baiwei) {
				System.out.println(i);
			}
		}
	}
}

这个代码很简单也很繁杂,因为如果要求不同位数的回文数需要增加if结构,但好处就是容易看懂,如果想要判断一个数是否是回文数的话,可以使用以下方法

import java.util.Scanner;

public class St01 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		if (a<0||(a!=0&&a%10==0)) {
			System.out.println("这个不是回文数");
		}
		int res = 0;
		while (a>res) {
			res = res*10+a%10;
			a=a/10;
		}
		if (a==res||a==res/10) {
			System.out.println("这是一个回文数");
		}else {
			System.out.println("这个不是回文数");
		}
	}
}

此外我看见其他大佬都是写方法来判断的,也一起给你们贴上,确实比我的要简洁多了

public boolean isPalindrome(int x) {
    if (x<0 || (x!=0 && x%10==0)) return false;
    int rev = 0;
    while (x>rev){
        rev = rev*10 + x%10;
        x = x/10;
    }
    return (x==rev || x==rev/10);
}

写这些既是一种对自己知识的概括,也是希望能帮助到许多人

更多推荐

Java回文数代码(初学者易懂)