php怎么写水仙花数
时间 : 2023-04-25 10:14:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

水仙花数,也叫阿姆斯特朗数,是指一个三位数,其各位数字的立方和等于该数本身。例如153就是一个水仙花数,因为1³+5³+3³=153。

PHP编写一个判断一个数是否为水仙花数的程序可以采用以下方法:

```php

<?php

function isNarcissisticNumber($num) {

// 获取百位、十位、个位上的数字

$hundreds = floor($num / 100);

$tens = floor(($num % 100) / 10);

$units = $num % 10;

// 计算立方和

$sum = pow($hundreds, 3) + pow($tens, 3) + pow($units, 3);

// 判断是否为水仙花数

if ($sum == $num) {

return true;

} else {

return false;

}

}

// 测试

$num = 153;

if (isNarcissisticNumber($num)) {

echo $num . '是水仙花数。';

} else {

echo $num . '不是水仙花数。';

}

?>

这个程序中,首先使用 `floor()` 函数取整获取数字的百、十、个位数字,然后计算它们的立方和,最后判断是否等于原数字。如果等于,则说明是水仙花数,否则不是。

需要注意的是,这个程序仅适用于三位数字的判断,如果需要判断更多位数字是否为水仙花数,需要对程序进行相应的修改。

此外,我们还可以使用循环来判断一定范围内的水仙花数,如:

```php

<?php

// 判断100~999之间的水仙花数

for ($i = 100; $i <= 999; $i++) {

if (isNarcissisticNumber($i)) {

echo $i . '是水仙花数。';

}

}

?>

这个程序通过 for 循环来逐个判断 100 至 999 之间的数字是否为水仙花数,如果是就输出对应的数字。

水仙花数是指一个三位数,各个位上的数字的立方和等于它本身。例如,153是一个水仙花数,因为1³ + 5³ + 3³ = 153。

在 PHP 中,可以使用循环和条件语句来计算水仙花数。以下是一个计算水仙花数的 PHP 函数:

function narcissistic($num) {

$sum = 0;

$len = strlen($num); // 获取数字的位数

for ($i = 0; $i < $len; $i++) {

$digit = substr($num, $i, 1); // 获取数字的每一位

$sum += pow($digit, $len); // 计算每一位数字的立方和

}

return $sum == $num; // 返回计算结果是否等于原始数字

}

这个函数接受一个三位数的整数作为参数,计算其各个位上的数字的立方和,并将该值与原始数字进行比较。如果计算结果等于原始数字,则返回 true,否则返回 false。

可以使用以下代码来测试这个函数:

for ($i = 100; $i < 1000; $i++) { // 从100到999循环

if (narcissistic($i)) { // 如果是水仙花数

echo "$i 是水仙花数\n"; // 输出结果

}

}

该代码将从100到999的所有数字都传递给 `narcissistic` 函数进行计算,并将其结果输出。

需要注意的是,该函数只能用于三位数的水仙花数计算。如果需要计算其他位数的水仙花数,需要对函数进行调整。