各位看客,疑問有沒有充滿你大大的腦袋?哈哈,別懵,今天又要給大家介紹一個好玩的方法,翻譯本文標(biāo)題的大白話就是“用PHP檢查一個數(shù)是否是阿姆斯特朗數(shù)”,阿姆斯特朗數(shù)其實也就是水仙花數(shù),那這到底啥數(shù)才是水仙花?又怎么用PHP程序?qū)崿F(xiàn)?下面我們就來一一介紹~
首先給大家介紹水仙花數(shù)即阿姆斯特朗數(shù)的定義:
水仙花數(shù)也被稱為超完全數(shù)字不變數(shù)、自戀數(shù)、自冪數(shù)、阿姆斯壯數(shù)或阿姆斯特朗數(shù)(Armstrong number)。水仙花數(shù)是指一個 3 位數(shù),它的每個位上的數(shù)字的 3次冪之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
這下應(yīng)該明白了吧,然后咱們繼續(xù):
直接打開編輯器,上代碼!
<?php function armstrong_number($num) { $sl = strlen($num); $sum = 0; $num = (string)$num; for ($i = 0; $i < $sl; $i++) { $sum = $sum + pow((string)$num{$i},$sl); } if ((string)$sum == (string)$num) { return "True"; } else { return "False"; } } echo "153是阿姆斯特朗數(shù)嗎?".armstrong_number(153); echo "<br>21是阿姆斯特朗數(shù)嗎?".armstrong_number(21); echo "<br>4587是阿姆斯特朗數(shù)嗎?".armstrong_number(4587);
來運行結(jié)果看看:
上述例子里,我們給了三個數(shù)進(jìn)行判斷,分別是153、21、4587。
明顯153是阿姆斯特朗數(shù),而21和4587都不是,所以返回了false。
其實在PHP程序中想要實現(xiàn)判斷是不是阿姆斯特朗數(shù),最關(guān)鍵的一點就是它的判定公式!
正如上面定義所說的,符合每個位上的數(shù)字的3次冪之和等于它本身的數(shù)就稱之為阿姆斯特朗數(shù),也就是水仙花數(shù)。
那么示例中一個關(guān)鍵代碼部分就是“$sum =$sum + pow((string)$num{$i},$sl);
”了。
這里pow()是PHP中一個內(nèi)置函數(shù),用于計算x的y次方。
至此,是不是就淺顯易懂了?
雖然不難,但是個人覺得比較有意思,這樣的思路,也希望能幫助到需要的朋友~
PHP視頻教程請戳->https://www.php.cn/course/list/29/type/2.html