站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        php循環(huán)學(xué)習(xí)十:判定水仙花數(shù),打印全部水仙花數(shù)

        在之前的文章《PHP循環(huán)學(xué)習(xí)九:獲取給定兩數(shù)間的最大公因數(shù)》中,我們給大家介紹了在PHP程序怎么通過while循環(huán)語句來求給定兩個(gè)整數(shù)間的最大公約數(shù),下面繼續(xù)php循環(huán)的學(xué)習(xí)~

        本文主要帶大家來看看,給定一個(gè)三位整數(shù),怎么判斷該數(shù)是不是水仙花數(shù)?然后怎么輸出全部水仙花數(shù)。

        首先我們來看看什么是水仙花數(shù)?

        水仙花數(shù)是一個(gè) 3 位數(shù),它的每個(gè)位上的數(shù)字的 3次冪之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

        下面我們先來看看怎么判斷給定的一個(gè)三位數(shù),它是不是水仙花數(shù)?

        思路分析:

        根據(jù)上文我們知道:一個(gè)數(shù)$num要是水仙花數(shù),那么它要滿足: 個(gè)位的3次方+十位的3次方+百位的3次方= $num本身

        那么我們可以先分解$num,得到個(gè)位$g、十位$s、百位$b

        然后判斷 $g^3 + $^3 +$b^3 是不是等于$num

        下面看看實(shí)現(xiàn)代碼:

        <?php header("Content-type:text/html;charset=utf-8"); function is_narcissistic ( $num ){ 	$b= intval($num/100); 	$s= ($num/10)%10; 	$g= $num%10; 	 //	if($b*$b*$b+$s*$s*$s+$g*$g*$g==$num){  等價(jià)于  	if(pow($b,3)+pow($s,3)+pow($g,3)==$num){ 		echo $num."是水仙花數(shù)<br>"; 	}else{ 		echo $num."不是水仙花數(shù)<br>"; 	} } is_narcissistic(153); is_narcissistic(152); ?>

        輸出結(jié)果:

        php循環(huán)學(xué)習(xí)十:判定水仙花數(shù),打印全部水仙花數(shù)

        上例中pow($b,3)$b*$b*$b是等價(jià)的,都可以計(jì)算$b的三次方($b^3)。pow(x,y)函數(shù)可以返回 x 的 y 次方,即x^y。

        我們知道水仙花數(shù)是一個(gè) 3 位數(shù),則它是有定額的,那么如何計(jì)算并輸出所有的水仙花數(shù)呢?這就需要使用循環(huán)了。

        可以利用for循環(huán)來限定范圍在100~1000之間,寫法:

        <?php header("Content-type:text/html;charset=utf-8"); $i=0; for ( $num = 100; $num < 1000; $num++){ 	$b= intval($num/100); 	$s= ($num/10)%10; 	$g= $num%10; 	 	if(pow($b,3)+pow($s,3)+pow($g,3)==$num){ 		echo $num."<br>"; 		$i++; 	} } echo "水仙花數(shù)共有 $i 個(gè)"; ?>

        看看輸出結(jié)果:

        php循環(huán)學(xué)習(xí)十:判定水仙花數(shù),打印全部水仙花數(shù)

        除了上面計(jì)算并輸出所有水仙花數(shù)的方法,還可以使用3個(gè)for循環(huán)遍歷每一位來輸出所有水仙花數(shù):

        <?php header("Content-type:text/html;charset=utf-8"); $i=0; 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>"; 		   $i++;         }       }     } } echo "水仙花數(shù)共有 $i 個(gè)"; ?>

        看看輸出結(jié)果:

        php循環(huán)學(xué)習(xí)十:判定水仙花數(shù),打印全部水仙花數(shù)

        可以看出,輸出結(jié)果是一樣的。

        可以看出,我們?cè)趂or循環(huán)的循環(huán)體中,使用一個(gè)計(jì)數(shù)器$num,在每次輸出一個(gè)三位回文數(shù)后,自增1,這樣就可以統(tǒng)計(jì)出100~999內(nèi)有多少回文數(shù)了。

        好了就說到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦?!?→php視頻教程

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 久久亚洲av无码精品浪潮| 久久精品成人| 国产精品无码国模私拍视频 | 国产精品igao视频| 精品国精品国产自在久国产应用| 日韩欧美国产精品第一页不卡| 93精91精品国产综合久久香蕉| 99在线精品一区二区三区| 人妻少妇乱子伦精品| 亚洲精品无码久久久| 国产在线观看一区精品| 91久久精品国产免费直播| 国产99久久精品一区二区| 精品卡一卡二卡乱码高清| 亚洲精品tv久久久久久久久| 亚洲?V乱码久久精品蜜桃 | 99亚洲精品视频| 国产精品区一区二区三在线播放| 在线观看自拍少妇精品| 亚洲欧美日韩国产精品影院| 麻豆国产精品VA在线观看不卡 | 97久久精品人人做人人爽| 国产精品1024香蕉在线观看 | 亚洲国产精品va在线播放| 无码精品人妻一区二区三区AV| 久久久精品视频免费观看| 久久99精品免费一区二区| 久久99精品久久久久久噜噜| 精品久久久无码中文字幕| 精品国产香蕉伊思人在线在线亚洲一区二区 | 久久午夜无码鲁丝片午夜精品| 久久久久国产精品三级网| 日韩精品视频在线观看免费| 日本午夜精品理论片A级APP发布| 毛片a精品**国产| 在线亚洲欧美中文精品| 人人妻人人澡人人爽精品日本| 国产乱码精品一区二区三区中文| 精品国产乱码久久久久久1区2区| 97久久精品人妻人人搡人人玩| 华人在线精品免费观看|