转为字符串
int reverse(int x)
{
long result; //利用long避免溢出
if (x == INT_MIN)
{
return 0;
}
if (x < 0)
{
return -reverse(-x);
}
stringstream ss;
ss << x;
string tmpStr;
ss >> tmpStr;
int tmpStrSize = tmpStr.size();
string resultStr;
for (int index = tmpStrSize - 1; index >= 0; index--)
{
resultStr.push_back(tmpStr[index]);
}
ss << resultStr;
ss >> result;
if (result > INT_MAX)
{
return 0;
}
return int(result);
}
另外一种方法使用数学方法进行;
int reverse(int x)
{
long result(0); //利用long避免溢出
if (x == INT_MIN)
{
return 0;
}
if (x < 0)
{
return -reverse(-x);
}
int digit(0);
while (x > 0)
{
digit = x % 10;
x /= 10;
result = result * 10 + digit;
}
if (result > INT_MAX)
{
return 0;
}
return int(result);
}