问题:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
将数字反转,然后比较反转后的数字和原来的数字是否相等。
bool isPalindrome(int x){
int y=x;
double a=0;
while(y>0){
a=a*10+y%10;
y/=10;
}
if(a==x)
return true;
else
return false;
}
对于while(y>0) 使用if的话,可会更容易理解,但是使用while循环可以更快地实现相同的功能,因为它可以在不断重复检查条件的情况下,一直循环到条件不满足为止。
使用int变量定义a时会出现signed integer overflow: 998765432 * 10 cannot be represented in type 'int' [solution.c] 问题
解决方案是use a larger data type, such as a long or a double.