整数的反转

来源:互联网 发布:mac华康新篆体 编辑:程序博客网 时间:2024/06/06 03:20

思路1

代码 没有考虑溢出

 int reverse(int x) {        int t=x;        int reverse=0;        while(t){            reverse=reverse*10+t%10;            t=t/10;        }       return reverse;    }

代码2  考虑 溢出

用的是用long类型存储结果,如果结果大于0x7fffffff或者小于0x80000000就溢出

我的解法是每次计算新的结果时,再用逆运算判断与上一次循环的结果是否相同,不同就溢出

 int reverse(int x) {        int t=x;        long long reverse=0;        while(t){            int res=reverse*10+t%10;            if((res-t%10)/10!=reverse){   //逆运算判断是否溢出                return 0;            }            reverse=res;            t=t/10;        }       return reverse;    }


原创粉丝点击