整数反转实现起来不是很困难。只要不断对目标取余数加到结果中再对目标缩减就能实现,并且本体是允许存在负数的,所以实现while循环的时候只要num!=0就好了。
int res =0;
while(num !=0){
int temp = num%10;
res = res*10+temp;
num = num/10;
}
该问题没想到处理方法的地方在于不能超过int的取值范围。
看了题解后我的理解是如果结果超过了范围就会导致数值不准确,进而再判断也没有意义了,所以就要在超过边界值的前一位进行比较。
就是边界值是2147483647和-2147483648。如果到了这一位的数再进行比较,如果发生了溢出就无法再比较了,所以要对边界值/10,进行比较,也就是结果值比较214748364 这个数。之后再对余下的数进行判断,如果这时已经比214748364 大或比-214748364 小,那么这说明已经溢出了,直接返回0,如果相等则要继续比较后面的值,如果余下的数是正数并且大于7,说明相加后会溢出,返回0,如果是负数且小于-8,说明溢出,返回0.