回文的定义:“回文” 就是正读倒读都一样的。

比如:有个数字为98789,这个数字正读是”98789″ 倒读也是”98789″,所以这个数字就是回文数

          比如数字:3223也是回文数

那如何判断一个数是不是回文数呢?

解析思路是

                      (1)要取到这个数的倒读的数字

                      (2)将正读和倒读进行比对,如果相等就是回文数,如果不相等就不是回文数

                      (3)如果数字是1-9,那他就是一个回文数,如果数字是大等于10的就需要进行求倒数

那怎么取这个数倒读呢:

可以用这个数跟10取余和求商的方法

比如121:121/10=12…..1

                 12/10=1……2

                 1/10 =0…….1

可以发现跟10取余可以得到对应的值,所以得用一个循环判断,当商等于0的时候就不取余了

但是怎么把他拼接起来呢,我们可以设置一个字符串变量,每次都拼接上,然后再将字符串转换为数字

用:Integer.parseInt(x):x代表字符串

实操1:判断一个数是不是回文数
public static int test1(int a){
String b = "";
while (a!=0){
b=b+a%10;
a=a/10;
}
return Integer.parseInt(b);

}

 

 

这里要注意的是为什么我们在比较的时候不用a==e而是用equals呢,因为Integer(-128)到integer(127)之前可以用==比较结果是TRUE,大于127用==比较结果就是FALSE

实操2:判断给定一个范围数字,判断有多少个回文数

package com.tangxin;
import java.util.Scanner;

public class test {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.println("请输出要设置的数字");
int a = in.nextInt();
int count = 0;
if(a<10){
count = a;
}
if(a>=10){
for(int i=10;i<=a;i++){
int e = test1(i);
if(i==e){
count=count+1;
}
}
count=10+count;
}
System.out.println("总的幸运个数是:"+count);
}
public static int test1(int a){
String b = "";
while (a!=0){
b=b+a%10;
a=a/10;
}
return Integer.parseInt(b);
}
}

这里面可以设置i==e,是因为我定义了e是int型的,上一个例子我是定义的是Integer,所以会出现超出的情况用equals来判断

(int类型没有equals,Integer 类型才有的)

版权声明:本文为123sherry123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/tangxinketang/p/16541759.html