> 简洁易懂讲清原理,讲不清你来打我~

输出整数,反转,输出整数,反转超出int输出0
![在这里插入图片描述](https://img-blog.csdnimg.cn/80fa110385b1411d93b3d4b77b5ea481.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/f5f4e38d8a9c4f22bd59c18e59d02775.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/8bda5683ece54a7aac17827d0195afde.png)

> 取得个位

简单的思路
取得个位,放入结果个位,可能溢出用INT_MAX/10和INT_MAX%10判断

精准的定义
ans是不断积累个位的答案
positive是不断被截取个位的正数
isNegative是负数标志

```cpp
class Solution {
public:
int reverse(int x) {
int ans=0,positive=x;
bool isNegative=false;
if(x==INT_MIN)return 0;
if(x<0){
isNegative=true;
positive=-positive;
}
while(positive>0){
if(ans>INT_MAX/10||ans==INT_MAX/10&&positive>INT_MAX%10){
ans=0;
break;
}
ans=ans*10+positive%10;
positive/=10;
}
if(isNegative)ans=-ans;
return ans;
}
};
```

踩过的坑

```cpp
if(x==INT_MIN)return 0;
```

> 喜欢简洁易懂还能讲清楚原理博客的小伙伴就关注关注这个非常高产的博主呀,下次再会~

posted on 2021-07-24 00:02  offer快到碗里来~  阅读(38)  评论(0)    收藏  举报