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