Heim >php教程 >php手册 >php实现水仙花数的4个示例分享

php实现水仙花数的4个示例分享

WBOY
WBOYOriginal
2016-06-13 09:39:391166Durchsuche

示例1:

复制代码 代码如下:


for($q=1;$q    for($w=0;$w      for($e=0;$e        if($q*$q*$q + $w*$w*$w + $e*$e*$e ==
         100*$q + 10*$w + $e){
           echo "$q $w $e "."

";
        }
      }
    }
}
?>

示例2:

复制代码 代码如下:


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 {
    if ( is_narcissistic($i) )
        echo $i."\n";
}
?>

示例3:

复制代码 代码如下:


//阿姆斯特朗数:一个k位数,它的每个位上的数字的k次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
class Armstrong {
 static function index(){
  for ( $i = 100; $i    echo self::is_armstrong($i) ? $i . '
' : '';
  }
 }
 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();

示例4:

复制代码 代码如下:



 

 function winter($num)
 {
       if($num       //定义个位
       $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";
   }
        }

?>



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn