这是我刷蓝桥杯题库时遇到的一道题
首先,回文数就是你从左边开始,读出来的数=从右边开始读出来的数相等,称为回文数
例如: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);
}
写这些既是一种对自己知识的概括,也是希望能帮助到许多人