标签:
这题是简单题,但题目要求不要使用多余的内存空间,所以做时还是要想想,我是在开始是先计算出数的位数
然后每次比较是否回文时,就单独取出第i位,即先模再除就可以取出来了。
#include<iostream> #include<string> #include <math.h> using namespace std; int weishu(int x) { for(int i=0;i<=11;i++) if((x/(int)pow(10.0,i))==0) return i; } bool isPalindrome(int x) { if(x<0) return false; int len=weishu(x); for(int i=0;i<len/2;i++) if((x%(int)pow(10.0,i+1))/(int)pow(10.0,i) !=(x%(int)pow(10.0,len-1-i+1))/(int)pow(10.0,len-1-i)) return false; return true; } int main() { cout<<isPalindrome(121)<<endl; int x=121; int len=weishu(x); cout<<len<<endl; for(int i=0;i<len/2;i++) { cout<<(x%(int)pow(10.0,i+1))/(int)pow(10.0,i)<<endl; cout<<(x%(int)pow(10.0,len-1-i+1))/(int)pow(10.0,len-1-i)<<endl; } }
leetcode_9题——Palindrome Number (数学问题)
标签:
原文地址:http://www.cnblogs.com/yanliang12138/p/4531062.html