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` 函数进行计算,并将其结果输出。
需要注意的是,该函数只能用于三位数的水仙花数计算。如果需要计算其他位数的水仙花数,需要对函数进行调整。
上一篇
怎么把php和前端结和
下一篇
php怎么生成唯一的网址
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章