水仙花數是指一個 n 位數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等于它本身。(例如:1^3 + 3^3+ 5^3 = 153)這篇文章主要介紹了php實現水仙花數的4個示例分享,需要的朋友可以參考下:
示例1,代碼如下:
<?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>";
}
}
}
}
?>
示例2,代碼如下:
<?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."\n";
}
?>
示例3,代碼如下:
<?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;
}
}