题目要求:

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

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

解法一:

先将 整数转为字符串 ,然后将字符串逆转后判断与原字符串是否相等。代码如下:

public static boolean isPalindrome(int x) {//先将x逆转后转换成StringString s = new StringBuilder(x+"").reverse().toString();//判断逆转后的字符串是否与数字x转换成的字符串相等。return s.equals(x+"");
}

解法二:

通过取整和取余操作获取整数中对应的数字进行比较。

举个例子:2442 这个数字。

通过计算 2442 / 1000, 得首位2
通过计算 2442 % 10, 可得末位 2
进行比较
再将 44 取出来继续比较。依次类推,代码如下:

    public static boolean isPalindrome(int x) {//当出现如下情况时一定不为回文数。if(x < 0 || x != 0 && x % 10 == 0) return false;//当出现如下情况时一定为回文数。if(x > 0 && x < 10) return true;  int div = 1;//除数int left = 0; //从左边开始取的数int right = 0; // 从右边开始取的数//算出div,方便得到x的最高位。while(x / div >= 10)  div *= 10; while(x > 0) {//得到此时x的最高位left = x / div;//得到此时x的最低位right = x % 10;//如果在此过程中left != right,那么x一定不为回文数if(left != right) return false;//x去掉首位和末位x = (x % div) / 10;//由于x每次去掉两位数,div每次变成原来的1/100。div /= 100;}return true;}

解法三:

这个解法的操作就是 取出后半段数字进行翻转。

这里需要注意的一个点就是由于回文数的位数可奇可偶,所以当它的长度是偶数时,它对折过来应该是相等的;当它的长度是奇数时,那么它对折过来后,有一个的长度需要去掉一位数(除以 10 并取整)。

具体做法如下:

1.定义一个num用来存放后半段数字,每次取出 x的个位数字。

2.每次 num = num*10 + 取出的x的个位的数字。

3. 每次过后x = x/10。直到x<num时循环结束。

代码如下:

    public static boolean isPalindrome(int x) {//当出现如下情况时一定不为回文数。if(x < 0 || x != 0 && x % 10 == 0) return false;//当出现如下情况时一定为回文数。if(x > 0 && x < 10) return true; //从x的末尾开始取,直到num的位数和x相同(x有偶位数)//或者num的位数比x的位数大1(x为奇位数)int num = 0;while(x > num) {num = num*10 + x % 10;x /= 10;}//判断x为偶数的时候或x为奇数的时候return (x == num || x == num / 10);}

判断一个数是否为回文数(三种方法,详细注解)相关推荐

  1. C语言判断一个数是否是回文数

    C语言判断一个数是否是回文数 #include <stdio.h> int main(){int num, s, y = 0;printf("请输入一个数字: ");s ...

  2. C++判断一个数是否为回文数palindrome的算法(附完整源码)

    C++判断一个数是否为回文数palindrome的算法 C++判断一个数是否为回文数palindrome的算法完整源码(定义,实现,main函数测试) C++判断一个数是否为回文数palindrome ...

  3. 判断一个数是否是回文数(Java)

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net package live.every.day.Pro ...

  4. python判断一个数是否为回文数

    判断一个数是否为回文数(正向读和反向读结果一样) num = raw_input('请输入要判断是否为回文数的数:') if (num[::-1] == num[:]):       print '% ...

  5. 判断一个数是否为回文数C

    判断一个数是否为回文数. 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数. #include<stdio.h> intmain() {         ...

  6. 函数习题(6):判断一个数是否是回文数

    试题详情: 编写一个带整数参数的函数,其功能是返回一个数的相反数,如整数9831,函数返回值为1389.从键盘输入一个整数,调用该函数,判断这个数是否是回文数(所谓回文数,是指从左向右读和从右向左读是 ...

  7. 编写一个Java应用程序。用户从键盘输入一个1~99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223

    编写一个Java应用程序.用户从键盘输入一个1-99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数.回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121.3223 ...

  8. wpf判断一个窗体是否运行_算法8 判断一个数是否是回文数

    问题描述: 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数,正着念和反着念都一样,例如:"上海自来水来自海上". 示例 1: 输入: 123 ...

  9. java判断五位数回文数_【视频+图文】Java经典基础练习题(五):键盘输入一个五位数,判断这个数是否为回文数...

    能解决题目的代码并不是一次就可以写好的 我们需要根据我们的思路写出后通过debug模式找到不足再进行更改 多次测试后才可得到能解决题目的代码! 通过学习,练习[Java基础经典练习题],让我们一起来培 ...

最新文章

  1. vue element upload 控件用form-data上传方式导入xls文件
  2. Atlassian发布Kubernetes节点自动化扩展工具Escalator
  3. [OpenGL]未来视觉1-Android摄像头采集基础
  4. ARMS V4.3发布,应用监控全新支持内存快照分析,全息排查等功能。
  5. 过滤器解决Struts2重定向漏洞
  6. Netty with protobuf(一)
  7. 第8章6节MonkeyRunner启动运行过程-启动Monkey 2
  8. 漫步数学分析八——集合边界
  9. .NET4进行COM互操作--导出数据到Excel
  10. fedora 19 gnome 3.8 关闭笔记本盖子的动作
  11. yuyu终于考完了!我提前过生日了!(两者好像没有关联嘛^_^)
  12. Send Automatic Out Of Office replies from Outlook
  13. Linux-基本使用
  14. Python实现壁纸批量下载
  15. 方便他人快速给你发邮件简单代码实现 QQ邮箱一键邮我组件让你体验什么是快?
  16. excel中如何实现提取汉字的拼音首字母
  17. 青龙面板-美团外卖天天神卷
  18. 需求方法论:需求的理解/来源/挖掘/记录
  19. 网络测试工具netperf
  20. linux切换用户并执行命令

热门文章

  1. mpvue使用vuex基本步骤以及如何使用
  2. cifar-10之matlab初步
  3. Sublime Text 超美丽主题配色
  4. 浅谈Python+requests+pytest接口自动化测试框架的搭建
  5. ORACLE 创建表分区
  6. win32项目和win32控制台程序的区别
  7. 头插法和尾插法创建单链表
  8. 基因数据处理71之GRCH38 的chr14提取
  9. 引水工程 Kruskal + Prim
  10. 宝塔nginx配置wss协议