首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

给定一个数字,如何判断它是不是回文形式的

2013-01-25 
给定一个数字,怎么判断它是不是回文形式的?给定一个数字,例如:1234554321,怎么才能判断这个数是不是回文呢

给定一个数字,怎么判断它是不是回文形式的?

给定一个数字,例如:1234554321,怎么才能判断这个数是不是回文呢?要求时间复杂度是O(n),空间复杂度是O(1).约定负数和0都不是回文。

如果要求不是空间复杂度是O(1),那可以直接把数字转换成字符串,用sprintf函数,然后判断这个字符串是不是回文。

第一种思路就是把这个数字,比如123321进行反转,然后把反转后的结果和原来的数字进行比较,如果相等那么就说明是这个数字是回文形式,相反则不是,基本思路代码如下:

bool isPalindrome(int x) {  if (x < 0) return false;  int div = 1;  while (x / div >= 10) {    div *= 10;  }          while (x != 0) {    int l = x / div;    int r = x % 10;    if (l != r) return false;    x = (x % div) / 10;    div /= 100;  }  return true;}


热点排行