题目大意:
判断输入的数字是不是回文数。所谓回文数就是正反读都一样的数字,比如说11,121,1221这样子的数字。负数不会是回文数。
解题思路:
思路一:如果这个数是负数,则返回false,否则用一个变量记录这个数字你转后的数字,判断它和逆转前是否相等。
思路二:如果是负数或者这个数个位为0,则返回false(0除外,如果是0也返回true)。否则用一个数字记录它逆转的一半,与其另一半比较,查看是否相等。(考虑数字位数的奇偶性)
解决代码:
我只写了思路二的代码,因为相对思路二的效率比思路一高出一倍。
bool isPalindrome(int x){ ||x!=&&x%==) return false; //负数或者个位数为0 ; //记录逆转的一半 while(x>sum){ sum=sum*+x%; x/=; } ; //包含数字位数是奇数和偶数的两种情况 }