常見試題:打印水仙花數

2016-08-24


 <?php
 //打印水仙花數:所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身。
    //方法一:拆分法   
    for ($i=100;$i<=999;$i++):
            $baiwei =$i/100; //取百位
            $shiwei =($i%100)/10;//取十位
            $gewei  =($i%10);//取個位
            $a=(int)$baiwei;//取整數
            $b=(int)$shiwei;
            $c=(int)$gewei;
            $m=pow($a,3)+pow($b,3)+pow($c,3);
        if($m==$i):
             echo $i."<br>";  
        endif;    
    endfor;
    echo '<hr>';
    //方法二:將數字強制轉換爲字符串,然後當成數組去下標。
    for ($i=100;$i<=999;$i++)
    {
         $x=(string)$i;
         $a=$x[0];
         $b=$x[1];
         $c=$x[2];
         $n=pow($a,3)+pow($b,3)+pow($c,3);
         if($n==$i)
         {
             echo $i."<br>";  
         }
    }
    echo '<hr>';
    //三重循環:組合法
    for($a=1;$a<=9;$a++)
    {
        for($b=0;$b<=9;$b++)
        {
            for($c=0;$c<=9;$c++)
            {
               if(pow($a,3)+pow($b,3)+pow($c,3)==$a*100+$b*10+$c)
               {
                   $d=$a*100+$b*10+$c;
                   echo $d.'<br>';
               }
            }
        }
    }
    echo '<hr>';
    //截取字符串法
    for($i=100;$i<=999;$i++)
    {
         $x=(string)$i;
         $a=substr($x,0,1);
         $b=substr($x,1,1);
         $c=substr($x,2,1);
         if(pow($a,3)+pow($b,3)+pow($c,3)==$i)
         {
               echo $i.'<br>';
         }
    }

 ?>
發佈了33 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章