Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
反转一个整数,在这里要注意判断溢出,当一个正整数溢出的时候,计算机会把它调整成一个负数,具体的可以参考补码的溢出调整。
思路:将整数先转换成一个字符串,判断第一位的符号,然后逐位累加。
num < 0就是在判断是否溢出。
if (num < 0)
return 0;
class Solution {
public:
int reverse(int x) {
int num=0;
string s = to_string(static_cast<long long>(x));
int leng = s.length();
if (s[0]== '-')
{
for (int i = 1;i<leng;i++)
{
int temp = (int)(s[i]-'0')* pow(10.0,(i-1));
num = num+temp;
if (num < 0 )
return 0;
}
num = -num;
}
else
{
for (int i = 0;i<leng;i++)
{
int temp = (int)(s[i]-'0')* pow(10.0,i);
num =num +temp;
if (num < 0)
return 0;
}
}
return num;
}
};