非常简单的一道题,值得学习的是溢出的处理。
#include<vector>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
class Solution {
public:
int reverse(int x) {
int output = 0;
while (x!=0)
{
int remainder;
remainder = x % 10;
x = x / 10;
//此处判断是否溢出
if (output > INT32_MAX / 10 || (output == INT32_MAX / 10) && remainder > 7) return 0;
if (output < INT32_MIN / 10 || (output == INT32_MIN / 10) && remainder < -8)return 0;
output = output*10+remainder;
}
return output;
}
};
int main()
{
int a;
int b;
cin >> a;
Solution method;
b = method.reverse(a);
cout << b;
system("pause");
return 0;
}