码迷,mamicode.com
首页 > 其他好文 > 详细

判断一个整数是否是回文

时间:2014-11-26 01:09:41      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   sp   div   log   bs   代码   

  回文指第一个字符和最后一个字符相同,第二个字符与倒数第二个字符相同,以此类推。回文可以是“1221”的形式,也可以是“121”的形式;单个数字也是回文。这里定义负整数不是回文。

  第一种做法是把正整数转换成字符串,存储在数组中,分别从左向右和从右向左遍历数组,判断是否是回文。这种方法的缺点是需要使用额外的存储空间。

  第二种做法是从个位数开始,依次取出来每一个数,计算逆序后的整数是否与原整数相等。这种做法可能会有溢出的情况发生。为什么?:)

  第三种做法是取出首尾数字比较是否相同,如果相同,去掉首尾数字得到新的数字,然后再做首尾数字的比较,依次类推。代码如下:

 1 bool isPalindrome(int x)
 2 {
 3     if (x < 0)
 4         return false;
 5     int div = 1;
 6     while (x / div >= 10) {
 7         div *= 10;
 8     }
 9     while (x != 0) {
10         int l = x / div;
11         int r = x % 10;
12         if (l != r)
13             return false;
14         x = (x % div) / 10;
15         div /= 100;
16     }
17     return true;
18 }

 

判断一个整数是否是回文

标签:style   blog   color   使用   sp   div   log   bs   代码   

原文地址:http://www.cnblogs.com/litao-tech/p/4122154.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!