给你一个整数 x ,如果 x 是一个回文整数,返回 ture ;否则,返回 false 。 算法题。算法面试题,简单算法,回文算法

编程入门 行业动态 更新时间:2024-10-23 21:30:39

给你一个整数 x ,如果 x 是一个回文整数,返回 ture ;否则,返回 false 。 <a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法题。算法面试题,简单算法,回文算法"/>

给你一个整数 x ,如果 x 是一个回文整数,返回 ture ;否则,返回 false 。 算法题。算法面试题,简单算法,回文算法

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

回文整数,就是按照从左到右读与从右到左,读出来的是同一个整数

例:121 从左到右  为121 ,从右到左也是121这个就是回文整数。

分析:这里出现 负数 、0、正数

1.负数肯定就不是回文了,false

2.0是回文 。true (怎么读都是0)

3.正数,有分奇数个整数和偶数个的整数、是否可以除10整除 ,如果可以就返回false ,大于0的数字,0不会出现在开头

3.1 比如说123 我们只要判断2左右的是否相等就可以了

3.2 如 1221 我们再中间劈开,判断左右是否相等就可以刻

这里说的相等指的是左边(从左到右)右边的(从右到左)

代码:

 public static boolean isPalindrome(int x) {// 这里是上面分析的特殊不是回文的情况// 如上所述,当 x < 0 时,x 不是回文数。// 同样地,如果数字的最后一位是 0,并且这个数字不是0,则表示不是回文if (x < 0 || (x % 10 == 0 && x != 0)) {return false;}//这里设置一个数值用来拆分这个整数int rn = 0;//这里如果前半部分小于后半部分,肯定拆解过半了,不用再继续了while (x > rn) {//用来获取这个整数的最后一位,放到置换的数字中rn = rn * 10 + x % 10;//每次来获取最新要拆分的整数x /= 10;}// 当数字长度为奇数时,我们可以通过 rn/10 去除处于中位的数字。// 例如,当输入为 12321 时,在 while 循环的末尾我们可以得到 x = 12,rn = 123,// 由于处于中位的数字不影响回文(它总是与自己相等),所以我们可以简单地将其去除。return x == rn || x == rn / 10;}

 

更多推荐

给你一个整数 x ,如果 x 是一个回文整数,返回 ture ;否则,返回 false 。 算法题。算法面试题,简单算法,回文算法

本文发布于:2024-02-26 17:00:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1703249.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法   回文   整数   是一个   给你

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!