整数反转

/**
 * 整数反转
 *
 * User: hihone
 * Date: 2019/2/2
 * Time: 09:44
 * Description:
 * 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
 */

function reverse($x)
{
    if (is_null($x)) return '';
    $xx = 1;
    if ($x < 1) $xx = -1;
    #去掉末尾0
    $x   = rtrim($x, '0');
    $len = strlen($x) - 1;
    $x1  = '';
    while ($len >= 0) {
        $x1 .= $x[$len];
        $len--;
    }

    $X = $x1 * $xx;
    if ($X > pow(2, 31) - 1 || $X < pow(-2, 31)) $X = 0;
    return intval($X);
}

$x = -123450;
echo reverse($x);

你可能感兴趣的:(整数反转)