回文数(Java解法)

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

例如,121 是回文,而 123 不是。

示例 1:

输入:x = 121

输出:true

示例 2:

输入:x = -121

输出:false

解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:

输入:x = 10

输出:false

解释:从右向左读, 为 01 。因此它不是一个回文数。

提示:

-231 <= x <= 231 - 1

题目来自:
https://leetcode-cn.com

Java解法如下:

import java.util.Scanner;public class Palindrome {public static void main(String[] args) {//方法一//new Palindrome().PaLindromeNumber();//方法二System.out.println(new Palindrome().isPalindrome(121));}

方法1,反转字符串:

    public static void PaLindromeNumber() {Scanner sc = new Scanner(System.in);System.out.println("请输入数字");int i = sc.nextInt();String ans = i + "";//数字转化为字符串String reverse = new StringBuffer(ans).reverse().toString();//逆转字符串if (ans.equalsIgnoreCase(reverse)) { //判断反转前和反转后是否相等System.out.println("是回文数");} else {System.out.println("不是回文数");}}

方法2算法如下:

首先,我们应该处理一些临界情况。
所有负数都不可能是回文,例如:-123 不是回文,因为 - 不等于 3。
所以我们可以对所有负数返回 false。除了 0 以外,所有个位是 0 的数字不可能是回文,因为最高位不等于 0。
所以我们可以对所有大于 0 且个位是 0 的数字返回 false。现在,让我们来考虑如何反转后半部分的数字。对于数字 1221,如果执行 1221 % 10,我们将得到最后一位数字 1,要得到倒数第二位数字,
我们可以先通过除以 10 把最后一位数字从 1221 中移除,1221 / 10 = 122,
再求出上一步结果除以 10 的余数,122 % 10 = 2,就可以得到倒数第二位数字。
如果我们把最后一位数字乘以 10,再加上倒数第二位数字,1 * 10 + 2 = 12,就得到了我们想要的反转后的数字。
如果继续这个过程,我们将得到更多位数的反转数字。现在的问题是,我们如何知道反转数字的位数已经达到原始数字位数的一半?由于整个过程我们不断将原始数字除以 10,然后给反转后的数字乘上 10,
所以,当原始数字小于或等于反转后的数字时,就意味着我们已经处理了一半位数的数字了。

方法2:

    public boolean isPalindrome(int x) {// 特殊情况:// 如上所述,当 x < 0 时,x 不是回文数。// 同样地,如果数字的最后一位是 0,为了使该数字为回文,// 则其第一位数字也应该是 0// 只有 0 满足这一属性if (x < 0 || (x % 10 == 0 && x != 0)) {return false;}int revertedNumber = 0;while (x > revertedNumber) {revertedNumber = revertedNumber * 10 + x % 10;x /= 10;}return x == revertedNumber || x == revertedNumber / 10;//x==revertedNumber||x==revertedNumber/10// 当数字长度为奇数时,我们可以通过 revertedNumber/10 去除处于中位的数字。// 例如,当输入为 12321 时,在 while 循环的末尾我们可以得到 x = 12,revertedNumber = 123,// 由于处于中位的数字不影响回文(它总是与自己相等),所以我们可以简单地将其去除。}}

回文数(Java解法)相关推荐

  1. 回文数--java两种方法实现

    1.题目描述:判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false ...

  2. 10000以内回文数java,求10到10000有哪些回文数?用C语言编写  并且用数组

    满意答案 huahanxx 2013.06.06 采纳率:43%    等级:12 已帮助:7545人 改成c语言了,再试试: #include #include using namespace st ...

  3. 回文数Python解法

    给你一个整数 x ,如果 x 是一个回文整数,返回 true :否则,返回 false . 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数.例如,121 是回文,而 123 不是. 来源 ...

  4. 回文数——Java实现

    回文数的定义 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数.例如,若n=1234321,则称n为一回文数:但若n=1234567,则n不是回文数. 注意: 1. ...

  5. java判断一个数是否是回文数_java编写判断是否是回文数

    一个五位数,要你用java编写程序判断它是不是回文数你知道代码是怎样的吗?下面给大家分享的就是这方面的一道java编程题目,一起来看看题目以及解题方法吧. 一.题目 下面是具体的题目,大家要详细看看哦 ...

  6. 判断回文数的两种解法

    一.首先什么是回文数呢? "回文"是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如"我为人人,人人为我"等.在数学中也有这样一类数字有这 ...

  7. 17.判断一个整数是否是回文数

    回文数(或迴文數)是指一个像14641这样"对称"的数,即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样. 判定一个正整数是否是一个回文数.例如12121是回文数 ...

  8. 10000内的回文数c语言,回文数

    "回文"是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如"我为人人,人人为我"等.在数学中也有这样一类数字有这样的特征,成为回文数(pa ...

  9. 4种算法 - 判断回文数

    题目 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: ...

最新文章

  1. linux md5sum 的用法(转)
  2. 编程大讲坛、坛坛是佳酿--编程大讲坛:C#核心开发技术从入门到精通
  3. 利用matlab命令画出以下信号的波形,MATLAB实验报告
  4. 挪动脑袋吃汉堡?AR版《贪吃蛇》帮你治好颈椎病
  5. JS异步操作新体验之 async函数
  6. 【Python + Selenium】之JS定位总结
  7. 【数学】Chaarshanbegaan at Cafebazaar
  8. shared_ptr四宗罪
  9. Windows系统通过命令行查看无线网络密码的三种方式
  10. easyui datagrid mysql分页_Easyui 自定义分页_EasyUI 教程
  11. Excel翻译单元格内容
  12. 在asp中实现由动态网页转变为静态网页
  13. 用python制作英文字典的分析_分享一个自己做的英文科学写作检查器
  14. 2021年焊工(初级)考试题及焊工(初级)考试试卷
  15. RocketMQ中的消息类型种类(二)
  16. windows msys2 启动缓慢 解决办法
  17. Python基础教程(第3版)中文版 第一章 快速上手:基础知识(笔记)
  18. layui删除后刷新表格_layui表格如何自动刷新
  19. python画k线图_使用Matplotlib轻松绘制股票K线图
  20. 谷歌创始人退位!印度籍 CEO “接管”美国科技圈?

热门文章

  1. 使用protractor操作页面元素
  2. matlab地球月球卫星关系,Matlab 卫星绕地球旋转演示动画
  3. 【附源码】计算机毕业设计java学习资源共享网站设计与实现
  4. [附源码]java毕业设计学习资源共享与在线学习系统
  5. STC11F04E——电子工艺实习
  6. paramiko使用
  7. (一)SPSS 输出表格样式设置操作——三线表(论文表格常用样式)
  8. 抗混叠滤波matlab实现,关于设计抗混叠滤波器容易忽视的三条建议
  9. BAPI_GOODSMVT_CREATE(调拨 收货 发货 入库 退货)BAPI
  10. 费马小定理(应用+拓展)