class Solution {
public static void main(String[] args){
int target = 7654321;
int result = reverse(target);
System.out.println(result);
}
public static int reverse(int x) {
int pop;
int result =0;
while(x!=0){
//第一步 pop最后一位数字
pop=x%10;
//第二步 x=x/10;
x=x/10;
//第三步 result=result*10 + pop;
// 如果 result 的值大于 Integer.MAX_VALUE / 10 ,那么一定会溢出
// 如果 result 的值等于 Integer.MAX_VALUE / 10,那么 pop 的值如果大于 Integer.MAX_VALUE % 10 也会溢出
// 相反的,result 的值小于 Integer.MIN_VALUE / 10 ,那么一定会溢出
// 如果 result 的值等于 Integer.MIN_VALUE / 10,那么 pop 的值如果小于于 Integer.MIN_VALUE % 10 也会溢出
if(result>Integer.MAX_VALUE/10||(result==Integer.MAX_VALUE/10&&pop>Integer.MAX_VALUE%10)){
result=0;
return result;
}
if(result<Integer.MIN_VALUE/10||(result==Integer.MIN_VALUE/10&&pop<Integer.MIN_VALUE%10)){
result = 0;
return result;
}
result = result*10 + pop ;
}
return result;
}
}
整数反转
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- public class IntReverse {/*** 借助字符串反转* @param x* @return*...
- (记录自己的leetcode之旅)给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1...