PHP 常用例子

如果一个正自然数可以表示为 n 次方的每个数字之和,则该自然数称为 n 阶的阿姆斯特朗数n。从数学上讲,它可以表示为:

PHP程序 检查Armstrong数

示例:

153 = 13+53+33 = 1+125+27 = 153

371 = 33+73+13 = 27+343+1 = 371

1634 = 14+64+34+44 = 1+1296+81+256 = 1634

方法 1:检查 Armstrong 数

在下面的示例中,使用名为 ArmStrongNum()函数。该函数需要两个参数,第一个参数是数字,第二个参数是其中的位数。它使用Pow()函数计算数字的幂。请参阅下面的示例了解语法:

<?php
function ArmStrongNum($MyNum, $Order) {
  $y = $MyNum;
  $sum = 0;

  while ($y > 0){
    $x = $y % 10;
    $sum = $sum + Pow($x, $Order);
    $y = (int)($y/10);
  }

  if ($MyNum == $sum){
    echo $MyNum." 是阿姆斯特朗数.\n";
  } else {
    echo $MyNum." 不是阿姆斯特朗数.\n";
  }
}

ArmStrongNum(371, 3);
ArmStrongNum(1634, 4);
ArmStrongNum(1000, 4);
?> 

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

371 是阿姆斯特朗数.
1634 是阿姆斯特朗数.
1000 不是阿姆斯特朗数. 

方法 2: n阶Armstrong数

在此示例中,ArmStrongNum 函数仅需要一个参数,即数字本身。传递参数的位数是在函数内部估计的。

<?php
function ArmStrongNum($MyNum) {
  $y = $MyNum;
  $sum = 0;
  $Order = 0;

  //查找Number中的位数
  while($y > 0){
    $Order++;
    $y = (int)($y / 10);
  }

  $y = $MyNum;
  while ($y > 0){
    $x = $y % 10;
    $sum = $sum + Pow($x, $Order);
    $y = (int)($y/10);
  }
  
  if ($MyNum == $sum){
    echo $MyNum." 是阿姆斯特朗数.\n";
  } else {
    echo $MyNum." 不是阿姆斯特朗数.\n";
  }
}

ArmStrongNum(153);
ArmStrongNum(9474);
ArmStrongNum(5000);
?> 

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

153 是阿姆斯特朗数.
9474 是阿姆斯特朗数.
5000 不是阿姆斯特朗数.