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;
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 类型才有的)

posted @   123sherry123  阅读(2654)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示