Java_回文数的判断
回文的定义:“回文” 就是正读倒读都一样的。
比如:有个数字为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; |
这里面可以设置i==e,是因为我定义了e是int型的,上一个例子我是定义的是Integer,所以会出现超出的情况用equals来判断
(int类型没有equals,Integer 类型才有的)