怎样判断一个整数是不是回文数?
2017-09-11 19:47
716 查看
首先说明一下回文数是什么,回文数就是将这个数反转之后,得到的数仍然是同一个数。例如:131,25352就是回文数。
那么怎么判断一个数是不是回文数呢?
有两种方法,第一种是数字翻转,即将整数翻转以后,看和原来一样吗,一样的话,就是回文数,反之则不是。
第二种方法是:逐位判断,即取整数的最后一位和第一位比较,然后将左右两位删除,再进行取最后一位和第一位比较,如果想等,则是回文数;反之则不是。
第一种:数字翻转
代码如下:
第二种方法:逐位判断
代码如下:
这两种方法均可以实现回文数的判断。
那么怎么判断一个数是不是回文数呢?
有两种方法,第一种是数字翻转,即将整数翻转以后,看和原来一样吗,一样的话,就是回文数,反之则不是。
第二种方法是:逐位判断,即取整数的最后一位和第一位比较,然后将左右两位删除,再进行取最后一位和第一位比较,如果想等,则是回文数;反之则不是。
第一种:数字翻转
代码如下:
public class PalindromeNumber{ public static void main(String args[]){ palindrome(25352); } public static boolean palindrome(int x){ if(x<0){ return false; } int temp = x; int rec = 0; while(temp>0){ rec = rec * 10 + temp % 10; //将数字翻转,首先取最后一位 temp = temp / 10; //取一位就减少一位 } System.out.println(x+"是回文数吗?"+x == rec); return x == rec; } }
第二种方法:逐位判断
代码如下:
public class PalindromeNumber{ public static void main(String args[]){ palindrome(321); } public static boolean palindrome(int x){ if(x<0){ return false; } int len = 1; while(x / len >= 10){ //判断位数 len *= 10; } while(x > 0){ int left = x /len; //取左边第一位 int right = x % 10; //取最后一位 if(left != right){ System.out.println(false); return false; } x = x % len / 10; //减去左右边上两位,剩余中间的 len = len /100; //len也减少两位 } System.out.println(true); return true; } }
这两种方法均可以实现回文数的判断。
相关文章推荐
- 判断一个整数是不是回文数
- 判断一个整数是不是回文数
- 一个5位数,判断它是不是回文数,即12321是回文数,个位与万位相同,十位 与千位相同
- 输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果
- 【程序25】 题目:一个5位数,判断它是不是回文数。
- java编程基础篇 --> 从键盘输入一个整数(1 个 3 位整数),判断其是不是水仙花数。所谓“水仙花数”是 指一个 3 位数,其各位数字立方和等于该数本身。
- 判断一个整数是不是2的整数次幂--小米某一笔试题
- 怎样在js中判断一个数字是否是整数!
- 判断一个正整数是不是回文数
- 判断一个整数数组是不是二叉搜索树的后序遍历序列
- 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。(java)
- 如何判断一个整数是不是奇数----最佳方式
- c语言:判断一个整数是不是2的整数次方
- Java实现:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。
- JavaScript 判断一个字符串是不是数字(整数或浮点数)
- 怎样判断一个整数的二进制表示有几个1(或0)
- 如何用一个语句判断一个整数是不是二的整数次幂?
- 随机输入一个数,判断它是不是对称数(回文数)(如3,121,12321,45254)。不能用字符串库函数
- 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同
- 《剑指Offer》输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。