首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

[ java例题 ] 判断是否是回文数??

解释:

* 回文数是指正序(从左到右) 和 倒叙

(从右往左) 读的都是一样!

* 如: 121 是回文数; 123 不是回文数

需求:

* 键盘录入一个整数 X

* 如果X是一个回文整数, 打印true ;

否则 返回 false;

> 总代码:

package com.sujunhao.test;

import java.util.Scanner;

public class Test21 { public static void main(String[] args) { /** * 需求: * 键盘录入一个整数 X * 如果X是一个回文整数, 打印true ; 否则 返回 false; * 解释: * 回文数是指正序(从左到右) 和 倒叙 (从右往左) 读的都是整数 * 如: 121 是回文数;; */ Scanner sc = new Scanner(System.in); System.out.println("输入一个数判断是否是回文数: "); int x = sc.nextInt(); int temp = x; // 定义一个临时变量,用于最后比较 int num = 0; // 保存翻转后的数据 while (x != 0){ int ge = x % 10; // 5 , 4 , 3 , 2 , 1 x = x / 10; // 1234 , 123 , 12 , 1 , 0(等于0结束循环) num = num * 10 + ge; // 5 , 54 , 543, 5432 , 54321

/* 分析: System.out.println("------"); System.out.println("ge - " + ge); System.out.println("x - " + x); System.out.println("num - " + num); */

}

System.out.println(num); System.out.println(num == temp);

}}

分段解释

- 键盘录入程序import java.util.Scanner; // (包)Scanner sc = new Scanner(System.in);System.out.println("请从键盘录入一个数字: ");int x = sc.nextInt();

- 使用while循环 还是 for循环 ?> 对于是否是使用for循环,还是while循环,有个很重要的特征:- for循环: 一般知道循环的次数或者循环的范围!- while循环: 一般不知道循环的次数或者范围!

故用 while循环!

// 运行的核心代码while (x != 0){ int ge = x % 10;        // 5    , 4   , 3  , 2  , 1x = x / 10;             // 1234 , 123 , 12 , 1  , 0(等于0结束循环)num = num * 10 + ge;    // 5    , 54  , 543, 5432 , 54321}

简单的说,就是把一个数给它倒过来,然后再进行比较1. 怎么倒过来?既然要倒过来,肯定是从个位下手,通过除以10进行取余(%) 获取继续获取十位,百位...最后在拼接成数字:num = num * 10 + ge

2. 最后在进行比较这里要注意一下:> 因为X每次除以10,到了最后就为 0 了; 所以就可以作为循环的结束条件!到了最后, X的值就为 0 了,所以要把X的值赋给一个临时变量temp,作最后的判断!int temp = x; // 定义一个临时变量,用于最后比较System.out.println(num == temp);

ok

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OxE14z8xXPKrYjvqZZSxX3aw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券