回文数:如121,1221这样正着和倒着读都一样的数叫做回文数,代码的主要思路是先将用户输入的数字倒过来后再与原来的数进行判断。
难点:将用户输入的数字倒过来
上代码:
package yulin.exercise04;
import java.util.Scanner;
public class 判断回文数 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
int temp=num;
int sum=0;
while(num!=0){
int n=num%10;
num/=10;
sum=sum*10+n;
}
if(sum==temp){
System.out.println("是回文数");
}
else{
System.out.println("不是回文数");
}
}
}
在while循环中便是将用户输入数字倒置的过程,我们以1234举例,当1234进入循环后
1.首先,1234会对10取模将4赋值给n,我们已经取出了4便可以在原来的数字中将4去掉,于是通过1234/10得到123,一开始sum的值为0,0*10+4便给sum赋值为4,将4放到了sum中,至于为什么sum要这样计算在下一次循环便能知晓。
2.此时num==123.则取模后将3赋值给n,通过123/10得到12,此时sum=4,通过运算sum=4*10+3得到sum=43,成功将3放入sum中。
3,接下来便是如法炮制,sum将为4321,在最后一次循环中,num应为1,进入循环后将取模后的1赋值给n,num便除以10变为0(最后一次为个位数,除以10都为0),所以循环继续的条件是num!=0;