java判断0-9999内的一个数是否为回文数

思路部分

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位数,且是回文数");
				}
	
	}
	

              

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值