PHP 常用例子

在 PHP 中,可以使用下面提到的方法找到给定整数的倒数。

方法 1:使用迭代

该方法涉及以下步骤:

Input: MyNum
步骤1:初始化RevNum = 0
步骤 2:当 MyNum 大于零时对其进行迭代。
   步骤 2a:计算 MyNum / 10 的余数
   步骤 2b:用 RevNum * 10 + 余数更新 RevNum
   步骤 2c:通过 (int)MyNum / 10 更新 MyNum
第 3 步:返回 RevNum

示例:

以下是上面演示步骤的实际例子。最初以输入数564开始做演算。
Input: 564

RevNum: 0
迭代 1: 
    取余: 564 % 10 = 4
    RevNum: 0 * 10 + 4 = 4
    MyNum: 564 / 10 = 56

迭代 2: 
    取余: 56 % 10 = 6
    RevNum: 4 * 10 + 6 = 46
    MyNum: 56 / 10 = 5

迭代 3: 
    取余: 5 % 10 = 5
    RevNum: 46 * 10 + 5 = 465
    MyNum: 5 / 10 = 0

return RevNum = 465 

上面的例子中,反复迭代取余数,直到余数为0,下面的代码块显示了上述概念的实现:

<?php
function reverse($MyNum){
  $RevNum = 0;
  $remainder;

  while($MyNum > 1){
    $remainder = $MyNum % 10;
    $MyNum = (int)$MyNum / 10;
    $RevNum = $RevNum * 10 + $remainder;
  }
  return $RevNum;
}

$x = 1285;
$y = 4567;
echo "反转 $x 为: ".reverse($x);
echo "\n反转 $y 为: ".reverse($y);
?> 

上面的代码将给出输出如下:

反转 1285 为: 5821
反转 4567 为: 7654 

方法二:使用递归

使用递归函数也可以实现上述结果。考虑下面的示例:

<?php
$RevNum = 0;
$base = 1;

function reverse($MyNum){
  global $RevNum;
  global $base;

  if($MyNum > 1){
    reverse((int)$MyNum/10);
    $RevNum += $MyNum % 10 * $base;
    $base *= 10;
  }
  return $RevNum;
}

$x = 7902;
echo "反转 $x 为: ".reverse($x);
?> 

上面的代码将给出以下输出:

反转 7902 为: 2097