题目:给定一个4为数 或者 5 为数 或者6 位数 然后判断当前数是否是回文数?121 是回文数 1221
分析:拿到这个题目我们首先要想到的就是如何拿到相应个位、十位等上面确切的数是多少,那么我们首先需要拿到这个数是多少,首先假设这个数为int a,我们为a随便定义一个数,即:
第一步
int a = 4567;
int ge = a%10;
int shi = a/10%10;
int bai = a/100%10;
int qian = a/1000%10;
int wan = a/10000%10;
int shiWan = a/100000%10;
因为我们不确定这个数字为多少位的,所以一直到十万位都需要拿到
接下来我们需要去判断这个数为几位数,才可以去判断对应的回文数,因为我们不确定几位数,所以这个地方涉及到一个强转,咱们将int数字的a强转,有一个方便的.length可以确定有多少位,所以即:
第二步
if ((a + "").length() == 4) {
}else if ((a + "").length() == 5) {
}else if ((a + "").length() == 6) {
}
这样就可以判断出此数为几位数,接下来我们就可以将判断是否回文数的表达式填进去了,所以最终的结果为:
结果
public class Demo5 {
public static void main(String[] args) {
int a = 4567;
int ge = a%10;
int shi = a/10%10;
int bai = a/100%10;
int qian = a/1000%10;
int wan = a/10000%10;
int shiWan = a/100000%10;
if ((a + "").length() == 4) {
if (ge == qian & shi == bai) {
System.out.println("当前数" + a + "是回文数");
}else {
System.out.println("当前数" + a + "不是回文数");
}
}else if ((a + "").length() == 5) {
if (ge == wan & shi == qian) {
System.out.println("当前数" + a + "是回文数");
}else {
System.out.println("当前数" + a + "不是回文数");
}
}else if ((a + "").length() == 6) {
if (ge == shiWan & shi == wan & bai == qian) {
System.out.println("当前数" + a + "是回文数");
}else {
System.out.println("当前数" + a + "不是回文数");
}
}
}
}
这里面的a可以是4位数,也可以是5位数、6位数
控制台的结果为:
当前数4567不是回文数