package com.qf.demo0720pratique;
import java.util.Scanner;
/*
20. 回文数
要求:给你一个整数x。如果是一个回文数,打印true,否则,返回false。
*/
public class Demo20 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一串数字:");
int num = scanner.nextInt();
//定义一个变量接收输入的数
int a = num;
//定义一个空变量接收逆序输出的数
int b = 0;
//逆序输出
while(num != 0){//判断输入的数是否为0为0结束循环
int ge = num % 10 ;//取出个位数
b = b * 10 +ge;//将取出来的数乘上十加上个位的数
num = num /10;//将个位的数抹去继续计算剩下的数
}
//比较输入的数和输出的数是否相等
if (a == b){
System.out.println(a+"是回文数");
}else {
System.out.println(a + "不是回文数");
}
}
}
当我们从键盘上输入一个数字后,我们使用a来保存原始的输入数字。然后,我们使用一个变量b
来逆转输入数字。
我们使用一个循环来逆转输入数字。在每次循环中,我们通过取余操作num% 10
获取数字的最后一位,并将其添加到b
中。然后,我们将输入数字除以10 ,num /= 10
来去掉最后一位。重复这个过程,直到输入数字变为0。
举个例子来说明这个过程。假设我们输入的数字是12321。在第一次循环中,我们将数字的最后一位1添加到b
中,此时b
的值为1。然后,我们将输入数字除以10,得到1232。在第二次循环中,我们将数字的最后一位2添加到b
中,此时b
的值为12。然后,我们将输入数字除以10,得到123。在第三次循环中,我们将数字的最后一位3添加到b
中,此时b
的值为123。然后,我们将输入数字除以10,得到12。在第四次循环中,我们将数字的最后一位2添加到b
中,此时b
的值为1232。然后,我们将输入数字除以10,得到1。在最后一次循环中,我们将数字的最后一位1添加到b
中,此时b
的值为12321。最后,我们将输入数字除以10,得到0,退出循环。
最后,我们将逆转后的数字b
与原始输入数字a进行比较。如果它们相等,则说明输入数字是回文数。