水仙花数PHP实现
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
用PHP实现1000以内的水仙花数输出:
<?php
//输出$n以内的水仙花数
function daffodil($n)
{
for ($i=100; $i<=$n; $i++)
{
$a = intval($i/100);//分解百位,intval()可将变量转成整数类型or (int)$i/100
$b = ($i/10)%10;//分解十位
$c = $i%10;
if ($i == $a*$a*$a + $b*$b*$b + $c*$c*$c)
{
echo $i.'<br>';
}
}
}
daffodil(999);
?>
输出结果:
153
370
371
407