Reverse Integer

题目:Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

思路:迭代计算,保存末尾值。注意一开始的负号

第一个需要注意的就是判断最大值最小值,尤其是最小值,这一点在后面的求解除法中非常明显。

代码:

class Solution {
public:<span class="comment" style="margin: 0px; padding: 0px; border: none; color: rgb(0, 130, 0); font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px; background-color: rgb(248, 248, 248);">//for more information,please email:j.z.feng@foxmail.com</span><span style="margin: 0px; padding: 0px; border: none; font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px; background-color: rgb(248, 248, 248);"> </span>
//https://leetcode.com/problems/reverse-integer/
    int reverse(int x) {
        if(x<0){
            return x==INT_MIN ? 0 : -reverse(-x);
        }
        int y,result=0;
        //x=32767
        if(x==0){
            return 0;
        }
        while(x>0){
            if(result>INT_MAX/10){
                return 0;
            }
            if(result==INT_MAX/10 && (x%10)>7){
                return 0;
            }
            result=result*10+(x%10);
            x=x/10;
        }
        return result;
    }
};


原文地址:https://www.cnblogs.com/jsrgfjz/p/8519909.html