水仙花数PHP实现
2015-08-31 16:41:09 小德 算法 访问次数 1025

 

  水仙花数是指一个 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