判断一个数字是否是回文
2012-04-19 07:42
288 查看
问题:
给一个数字,判断该数字是否是回文。比如 1221是回文,而123不是。
分析:
判断一个数字是否是回文,我们可以先把它转成字符串,然后根据回文“对称”的特性进行判断:查看第 x 个字符是否与第 n - x + 1 字符是否相等 (x 从1开始,n/2 结束, n 是指数字长度)。但是,这道题因为是数字,有一种更好的解法。即根据原始数字,通过数学方法构建出它的回文数字,如果原始数字大小等于回文数字大小,那么该数字是回文,否则不是。
代码如下:
扩展:
给你一串字符串,找出其中最长的回文。这题的答案可以参考: http://blog.csdn.net/beiyeqingteng/article/details/7097146。
本文算法参考: http://codercareer.blogspot.com/2011/11/no-23-palindrome-numbers.html
转载请注明出处: http://blog.csdn.net/beiyeqingteng.
给一个数字,判断该数字是否是回文。比如 1221是回文,而123不是。
分析:
判断一个数字是否是回文,我们可以先把它转成字符串,然后根据回文“对称”的特性进行判断:查看第 x 个字符是否与第 n - x + 1 字符是否相等 (x 从1开始,n/2 结束, n 是指数字长度)。但是,这道题因为是数字,有一种更好的解法。即根据原始数字,通过数学方法构建出它的回文数字,如果原始数字大小等于回文数字大小,那么该数字是回文,否则不是。
代码如下:
bool isPalindrome(int originalNumber) { int palindrome = 0; int origin = originalNumber; // get the palindrome while(originalNumber != 0) { palindrome = palindrome * 10 + originalNumber % 10; originalNumber /= 10; } return palindrome == origin ; }
扩展:
给你一串字符串,找出其中最长的回文。这题的答案可以参考: http://blog.csdn.net/beiyeqingteng/article/details/7097146。
本文算法参考: http://codercareer.blogspot.com/2011/11/no-23-palindrome-numbers.html
转载请注明出处: http://blog.csdn.net/beiyeqingteng.
相关文章推荐
- 判断一个数字是否为回文数
- Lettcode_9_Palindrome Number ——判断一个数字是否回文(不能申请额外空间)
- Palindrome Number 判断一个数字是否是回文数字@LeetCode
- leetcode palindrome-number(判断一个数字是否是回文)
- 作业 4 函数应用 编写一个程序,判断从键盘接收的数字是否为回文数字。回文数字就是顺着看和倒着看是相同的数。如121、656、2332等
- 9.判断一个数字是否为回文
- 2. 编写一个Java应用程序,用户从键盘输入一个1~9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、32
- 判断一个数字是否是回文数
- 编写一个Java应用程序。用户从键盘输入一个1—9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都
- 判断一个数字是否是回文
- 判断一个5位数是否是回文数字(C语言)
- 【华为面试题】给定一个数字(整数),判断它是否回文
- 判断一个数字是否是回文数字(递归)
- python判断一个数是否为回文数字
- 判断一个字符串是否是“回文”数字
- 第十一周项目3-6-判断一个数字是否回文
- 判断一个数字是否为回文数
- java 编写程序实现从控制台接收一个 5 位以上的整数,使用数组来判断该数字 * 是否是回文数。(例如:789987,12344321是回文数)
- [置顶] 判断一个数是否返回回文数,(回文数也是一个数字,即正反序是同一个数)
- 判断一个数字是否回文数字