首页 > 代码库 > 判断一个整数是否是回文
判断一个整数是否是回文
回文指第一个字符和最后一个字符相同,第二个字符与倒数第二个字符相同,以此类推。回文可以是“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 }
判断一个整数是否是回文
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。