一,这种方法用于判断比较小的回文数,不适用与过长的回文数,这里是int的储存情况
//大概的思路就是判断这个数从后往前数和从前往后数是否一样
bool hw(int n)
{
int tmp = 0;
int x = n;
do{
tmp = tmp * 10 + n % 10;//将这个数从后往前判断
n /= 10;
}while(n);
if(tmp == x)//如果操作后的数与原数相等
{
return true;
}else{
return false;
}
}
二,第二种方法适用与超长的数,用字符串的储存情况
//同时判断头尾是否相等
bool hw(string s)
{
int tmp = s.size() - 1;
int x = 1;
for(int i = 0, j = tmp; i < tmp / 2 + 1; i ++, j --)
{
if(s[i] != s[j])
{
x = 0;
break;
}
}
if(x == 1)
{
return true;
}else{
return false;
}
}