天天看点

Java程序设计——判断数字是否为回文数

编写一个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();	
	}
}