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;
}
网友评论