zoukankan      html  css  js  c++  java
  • php实现水仙花数(推荐方法一和五)

    水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 3^3+ 5^3 = 153)

    方法一、

    <?php
    for($q=1;$q<=9;$q++){
        for($w=0;$w<=9;$w++){
          for($e=0;$e<=9;$e++){
            if($q*$q*$q + $w*$w*$w + $e*$e*$e ==
             100*$q + 10*$w + $e){
               echo "$q $w $e "."<p>";
            }
          }
        }
    }
    ?>

    方法二、

    <?php
    function cube( $n )
    {
        return $n * $n * $n;
    }
     
    function is_narcissistic ( $n )
    {
        $hundreds = floor( $n / 100);    //分解出百位
        $tens = floor( $n / 10 ) % 10;    //分解出十位
        $ones = floor( $n % 10 );    //分解出个位
        return (bool)(cube($hundreds)+cube($tens)+cube($ones) == $n);
    }
     
     
    for ( $i = 100; $i < 1000; ++ $i )
    {
        if ( is_narcissistic($i) )
            echo $i."
    ";
    }
    ?>

    方法三、

    <?php
    //阿姆斯特朗数:一个k位数,它的每个位上的数字的k次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
    class Armstrong {
     static function index(){
      for ( $i = 100; $i < 100000; $i++ ) {
       echo self::is_armstrong($i) ? $i . '<br>' : '';
      }
     }
     static function is_armstrong($num){
      $s = 0;
      $k = strlen($num);
      $d = str_split($num);
      foreach ($d as $r) {
       $s += bcpow($r, $k);
      }
      return $num == $s;
     }
    }
    Armstrong::index();

    方法四、

    <html>
     
    <head>
      <title></title>
    </head>
     
    <body>
     
    <?php
     
     function winter($num)
     {
           if($num<1000){
           //定义个位
           $ge=$num%10;
           //定义十位
           $ten=(($num%100)-$ge) /10;
           //定义百位
           /*floor取整,忽略小数点后面的所有数*/
           $hundred=floor($num/100);
           $sum1=$ge*$ge*$ge+$ten*$ten*$ten+$hundred*$hundred*$hundred;
           if($sum1==$num){
                   return 1;
                    } else{
                            return 0;
                            }
     
                   } else{
                           return -1;
                           }
             }
     
             if(winter(371)==-1) {
                     echo "大于1000的数";
                }else{
                      if(winter(371)) {
                              echo "Yes";
                              }
         else{
       echo "No";
       }
            }
     
    ?>
     
    </body>
    </html>

    方法五、

    <?php 
    header('content-type:text/html;charset=utf8 ');
     ?>
     <script>
    for (var i=100; i < 1000; i++) { 
        a=parseInt(i%10);//分解出个位
        b=parseInt(i/10%10);//分解出十位
        c=parseInt(i/100%10);//分解出百位
        if(c*c*c+b*b*b+a*a*a==i){
            document.write(i+"<br>");
        }
    }
     </script>
  • 相关阅读:
    iOS开发---iPhone SDK 包含哪些东西?
    COS-8文件系统
    COS-7设备管理
    COS-6主存管理
    COS-5资源分配与调度
    COS-4进程及进程管理
    饭卡管理系统学生E-R图
    COS-3OS的用户接口
    COS-2OS结构和硬件支持
    计算机操作系统-1绪论
  • 原文地址:https://www.cnblogs.com/mzhaox/p/11246657.html
Copyright © 2011-2022 走看看