常见试题:打印水仙花数

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>';
         }
    }

 ?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值