PHP 程序检查数字是否为阿姆斯特朗数


2024年2月15日, Learn eTutorial
4107

什么是阿姆斯特朗数?

在这个基本的 PHP 程序中,我们需要了解什么是阿姆斯特朗数。阿姆斯特朗数是一个数,其中每个数字的幂次方(幂次为该数字的总位数)之和等于该数字本身。要了解更多关于阿姆斯特朗数的信息,我们有一篇有趣的博客文章,主题是阿姆斯特朗数的基础知识

三位数的阿姆斯特朗数

一个三位数如果其每个数字的立方和等于该数字本身,那么它就是一个阿姆斯特朗数.

例如,我们以数字 153 为例,检查这个数字是否为阿姆斯特朗数:

  • 我们需要计算 15 和 3 的立方
  • 将这些立方数相加
  • 并检查结果是否等于 153?
  • 如果结果是 153,它就是阿姆斯特朗数。否则不是。
  • 这里 1+125+27 =153,所以 它是一个阿姆斯特朗数

如何在 PHP 中检查一个三位数是否为阿姆斯特朗数?

在 PHP 中,要检查一个数是否为阿姆斯特朗数,我们首先必须从用户那里读取输入并将其赋值给一个变量。然后,我们必须使用 模 (%) 运算符通过 10 分割数字的各个位数,并计算每个数字的立方,将结果加到一个变量中。之后,我们必须比较得到的结果和输入的值,如果两个值相等,那么我们可以断定输入的数字是一个阿姆斯特朗数。否则,如果输入的数字不等于得到的结果,那么这个数字就不是阿姆斯特朗数。

算法

步骤 1:从用户那里接受值到变量 num

步骤 2:将值 0 赋值给变量 total

步骤 3:执行以下子步骤,直到条件 'x != 0' 变为假

            (i) 将 'x % 10' 的计算结果赋值给变量 rem

            (ii) 将 'total + rem * rem * rem' 的计算结果赋值给变量 total

            (iii) 将 'x / 10' 的计算结果赋值给变量 x

步骤 4:检查条件 'num == total',如果为真,则使用 echo 打印 '是的,num 是一个阿姆斯特朗数',否则打印 '不,num 不是一个阿姆斯特朗数'

PHP 源代码

                                          <?php
$num = readline("Enter the number: ");
$total = 0;
$x = $num;
while ($x != 0) {
    $rem = $x % 10;
    $total = $total + $rem * $rem * $rem;
    $x = $x / 10;
}
if ($num == $total) {
    echo "Yes $num is an Armstrong number";
} else {
    echo "No $num is not an armstrong number";
}
?>
                                      

输出

Enter the number: 407
Yes 407 is an Armstrong number