PHP 程序检查一个数字是否是 Disarium 数


2022 年 4 月 14 日, Learn eTutorial
1426

如何检查一个数字是否是 Disarium 数?

在这个程序中,我们正在检查这个数字是否是 Disarium 数。为了检查,我们必须根据数字中每个数字的位置找到它们的幂并将它们相加,如果结果等于原始数字,则该数字被认为是 Disarium 数。例如,如果输入的数字是 135,那么我们计算 11 + 32 + 53,结果是 135,我们可以看到结果与原始数字相同,所以我们可以说 135 是一个 Disarium 数。

如何使用 PHP 检查一个数字是否是 Disarium 数?

在这个程序中,我们从用户那里接受一个值并将其分配给变量 num。然后,我们将值 0 分配给变量 sum 和 rem,还将数字的长度分配给变量 size,并将变量 num 的值分配给变量 n。之后,我们必须执行 while loop,直到条件 'n > 0' 变为假。在循环块中,首先将 'n % 10' 的计算值分配给变量 rem,将 'sum + pow(rem, size)' 的计算值分配给变量 sum,将 'n /10' 的计算值分配给变量 n,并递减变量 size 的值。循环完成后,我们必须检查条件 'sum == num',如果为真,则打印变量的值为 disarium 数,否则为非 disarium 数。

算法

步骤 1: 从用户那里接受数字并将其存入变量 num

步骤 2: 将值 0 存入变量 sumrem

步骤 3: 将数字的长度存入变量 size

步骤 4: 将变量 num 的值存入变量 n

步骤 5: 执行子步骤,直到条件 'n > 0' 变为假

        (i) 将 'n % 10' 的计算值存入变量 rem

        (ii) 将 'sum + pow(rem, size)' 的计算值存入变量 sum

        (iii) 将 'n /10' 的计算整数值存入变量 n

        (iv) 递减变量 size 的值

步骤 6: 检查条件 'sum == num',如果为真,则打印变量的值为 disarium 数,否则为非 disarium 数

PHP 源代码

                                          <?php
$num = readline("Enter the number");
$rem = 0;
$sum = 0;
$size = strlen($num);
$n = $num;
while ($n > 0) {
    $rem = $n % 10;
    $sum = $sum + pow($rem, $size);
    $n = (int)($n / 10);
    $size--;
}
if ($sum == $num)
    echo "$num is a disarium number";
else
    echo "$num is not a disarium number";
?>
                                      

输出

Example 1
Enter the number518
518 is a disarium number

Example 2
Enter the number143
143 is not a disarium number

Example 3
Enter the number89
89 is a disarium number