Hide Tags: Math
解题思路:
(1)从给定数n的低位进行分离:int s=n%10;
(2)分离出的数,进行等效翻转操作:sum=sum*10+s; 为了防止溢出操作,将sum的类型定义为:long
(3)n/=10;继续循环操作
(4)检查是否溢出:如果sum>Integer.MAX_VALUE||sum<Integer.MIN_VALUE,则已经溢出,返回为0;如果没有溢出将sum强制类型转换为int即可
代码如下:
public static int reverse(int n) { //输出结果定义为long long sum=0; while (n!=0) { int s=n%10; sum=sum*10+s; n=n/10; } //防止溢出操作 if (sum>Integer.MAX_VALUE||sum<Integer.MIN_VALUE) { return 0; } return (int)sum; }
leetcode——7 Reverse Integer(附有溢出整数翻转的实现)
原文地址:http://blog.csdn.net/zzc8265020/article/details/46558289