Palindrome Number
程序员文章站
2024-03-22 14:30:10
...
#9 Palindrome Number
判断回文数。
1、上一题就做过反转一个数,因此第一个思路就是反转数,如果和原数相等则为回文数。
class Solution {
public:
bool isPalindrome(int x) {
if(x<0) return 0;
int originNum=x;
int revNum=0;
int pop;
while(x!=0)
{
pop=x%10;
x/=10;
if(revNum>INT32_MAX/10||(revNum==INT32_MAX/10&&pop>7)) return 0;
if (revNum<INT32_MIN/10||(revNum==INT32_MIN/10&&pop<-8)) return 0;
revNum=revNum*10+pop;
}
if(revNum==originNum) return 1;
else return 0;
}
};
2、从别人提交的代码中发现一种方法。反转一半数字,判断一半和另外一半是不是一样。
关键是如何判断一半,每次对数进行求余和求商来减小位数来反转,当反转的数大于余数后的原数,则判断是反转一半了。
while(x>revNum)
revNum=revNum*10+x%10;
x/=10;
return x==revNum || x==revNum/10; //(奇数个数的时候是后面这张情况)
推荐阅读
-
Palindrome Number
-
Palindrome Number
-
Palindrome Number
-
rank over partition dense_rank() row_number() SQLOracleCC++C#
-
rank over partition dense_rank() row_number() SQLOracleCC++C#
-
change delicate server max player numbers HOW-TOs 博客分类: UnrealEngine4 what is the maximum number of players UE4 can handle?
-
java.sql.SQLException: Parameter index out of range (1 > number of parameters, w 博客分类: java细节
-
【NOIP提高A组模拟2018.8.18】 number
-
【数位DP】JZOJ 5831. 【NOIP提高A组模拟2018.8.18】 number
-
JS Number类型的数值转换