思路部分
1 回文数的定义
回文数,即一串数字顺着数,跟倒着数,组成的数字含义是一样的。
举例,数字12321,倒过来数,12321,是一样的意思,就叫做回文数。
特别的,个位数都是回文数,如,0,1,2,3...9,都视为回文数。
2 如何判断一个数是否为回文数
这里以一个数1221为例说明
1 判断数字为几位数
System.out.println("请输入一个在0-9999内的数字");
Scanner reader=new Scanner(System.in);
int x=reader.nextInt();
if(x/1000>0){
System.out.println("该数字为四位数");
}
2 得到并判断首尾两个数字是否相同
//在上述判断出1221为四位数的前提下,开始计算首尾两个数字,并判断是否相等
int j=x/1000; //定义j为千位上的数字,1221/1000=1.221 由于定义j为整型,则j=1
int k=x%10; //k为个位上的数字,1;
得到后再使用if语句判断是否相同同
3 判断中间两位数
//接着第二步代码块
if(j==k){ //在首尾两个数字相同的情况下,继续判断
int w=x-j*1000; //此时,1221减去了1000,剩余221,w=221
int h=w/100; //h为1221的百位上的数
int y=(w-h*100)10 //y为1221的十位上的数
if(y==h){
System.out.println("该四位数为回文数");
}
}
原题
写一个java小程序判断0-9999内的一个数是几位数,是否为回文数
源代码
package work;
import java.util.*;
public class work3_1 {
public static void main (String args[]) {
System.out.println("请输入0—9999内的一个数字:");
Scanner reader=new Scanner(System.in);
int x=reader.nextInt();
if((x/1000)>0) {
System.out.println("输入的该数字为4位数");
int y=(int)(x/1000); //千位数上的数字
if(y==(x%10)) {
int j=(x-(y*1000))/100; //百位数上的数字
int z=(j-((int)(j/100))*100)/10; //十位数上的数字
if(j==z) {
System.out.println("该四位数是回文数");
}
else System.out.println("该四位数不是回文数");
}
}
else
if((x/100)>0) {
System.out.println("输入的该数字为3位数");
int k=x/100; //百位数上的数字
int l=x%10; //个位数上的数字
if(k==l) {
System.out.println("该三位数是回文数");
}
}
else
if((x/10)>0) {
System.out.println("输入的该数字为2位数");
int o=x/10; //十位数上的数字
int p=x%10; //个位数上的数字
if(o==p) {
System.out.print("该二位数是回文数");
}
}
else
System.out.println("输入的该数字为1位数,且是回文数");
}
}