回文数:正序(从左向右)和倒序(从右向左)读都是一样的整数。就是说一个数,这个数顺这读和倒着读都是一样的。
例如:121,1221是回文数,123,1231不是回文数。
方法一:数学算法
public class Test {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个正整数:");
int num=input.nextInt();
if(num<0) {
System.out.println("负数不为回文数");
}else {
int a=0,b=0;
int c=num;
while(c!=0) {
a=c%10;
b=b*10+a;
c/=10;
}
if(b==num) {
System.out.println(num+"是回文数");
}else {
System.out.println(num+"不是回文数");
}
}
}
}
方法二:运用数组
public class Test {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个正整数:");
int num=input.nextInt();
if(num<0) {
System.out.println("负数不为回文数");
}else {
int[] arr=new int[10];//int类型最多21亿,即最多10个数字;
int a=num;
int i=0;
for(;i<arr.length&&a>0;i++) {
if(a!=0) {
arr[i]=a%10;
a/=10;
}
}
System.out.println(Arrays.toString(arr));
System.out.println(i);
for(int j=0;j<i;j++) {
if(arr[j]==arr[i-1-j]){
System.out.println(num+"是回文数");
break;
}else {
System.out.println(num+"不是回文数");
break;
}
}
}
}
}
方法三:运用字符串的类方法
public class Test {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个正整数:");
String num=input.next();
for(int i=0;i<num.length();i++) {
if(num.charAt(i)==num.charAt(num.length()-1-i)) {
System.out.println(num+"是回文数");
break;
}else {
System.out.println(num+"不是回文数");
break;
}
}
}
}