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