整数反转

2022-07-27  本文已影响0人  Newzer
function reverse($x) {
        $flag = 1;//符号
        if ($x < 0) {
            $flag = -1;
            $x = -$x;
        }

        if ($x == 0) {
            return 0;
        }
        
        $max = pow(2, 31) - 1;
        $min = -1 * pow(2, 31);

        $res = 0;

        if ($x % 10 == 0) {   
            while ($x % 10 == 0) {
                $x = $x / 10;
            }
        }
        
        while($x != 0) {
            $tmp = $x % 10;
            if ($res - ($min - $tmp)/10 < 0  || $res - ($max - $tmp) / 10  >  0) {
                return 0;
            }
            $res = $res * 10 + $tmp;
            $x = floor($x / 10); 
        }

        return $flag * $res;

    }
上一篇 下一篇

猜你喜欢

热点阅读