编写一个Java应用程序,用户从键盘输入一个1~99999之间的整数,程序将判断这个数是几位数,并判断这个数是否为回文数。
思路与步骤
(1)所谓“回文数”,是设n是任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n 为一回文数。例如,若 n=1234321,则n 为回文数;但若n =1234567,则 n不是回文数。
(2)需要判断键盘接收数据是几位数,可使用算数运算符"/“和”%"来完成接收数据个位、百位等数据的获取。
代码如下:
package Class;
import java.util.Scanner;
public class main{
public static void main(String[] args) {
Scanner is = new Scanner(System.in);
int d0=0,d1=0,d2=0,d3=0,d4=0,d5=0;
System.out.println("请输入一个1~99999之间的数:");
int num = is.nextInt();
int num1 = num;
int count = 0;
if(num>=1 && num<=99999)
{
while(num>0) {
num = num/10;
count++;
}
}
else {
System.out.println("输入出错");
}
int NewNum = 0;
switch(count)
{
case 1:
d0 = num1;
NewNum = d0;
break;
case 2:
d1 = num1/10;
d0 = num1%10;
NewNum = d1+d0*10;
break;
case 3:
d2 = num1/100;
d1 = (num1-d2*100)/10;
d0 = (num1-d2*100)%10;
NewNum = d2+d1*10+d0*100;
break;
case 4:
d3 = num1/1000;
d2 = (num1-d3*1000)/100;
d1 = (num1-d3*1000-d2*100)/10;
d0 = (num1-d3*1000-d2*100)%10;
NewNum = d3+d2*10+d1*100+d0*1000;
break;
case 5:
d4 = num1/10000;
d3 = (num1-d4*10000)/1000;
d2 = (num1-d4*10000-d3*1000)/100;
d1 = (num1-d4*10000-d3*1000-d2*100)/10;
d0 = (num1-d4*10000-d3*1000-d2*100)%10;
NewNum = d4+d3*10+d2*100+d1*1000+d0*10000;
break;
}
if(num1 == NewNum)
System.out.println(num1+"是回文数");
else
System.out.println(num1+"不是回文数");
is.close();
}
}