DAY1 力扣7:整数反转,暴力法
力扣官方的解法
思路
力扣这边的比较重要的解析部分
这里在x大于0的时候
举个例子,将INT_MAX换成99,则【INT_MAX/10】*10。就是【99/10】*10=90。因为99/10取整。【INT_MAX mod 10】是取它的尾数。【99 mod 10】=9.
则后面部分就好理解了,不理解的部分就自己直接代数字进去就好了。
代码:
#include <iostream>
#include<limits.h>
using namespace std;
class Solution
{
public:
int reverse(int x)
{
int rev = 0;
while (x != 0)
{
if(rev < INT_MIN/10 || rev > INT_MAX / 10)
{
return 0;
}
int digit = x % 10;
x /= 10;
rev = rev*10 + digit;
}
return rev;
}
};
int main()
{
int x;
Solution sulution;
int result;
cout << "请输入要反转的数字" <<endl;
cin >> x;
result = sulution.reverse(x);
cout << result << endl;
return 0;
}