各位看客,疑問有沒有充滿你大大的腦袋?哈哈,別懵,今天又要給大家介紹一個好玩的方法,翻譯本文標題的大白話就是“用PHP檢查一個數是否是阿姆斯特朗數”,阿姆斯特朗數其實也就是水仙花數,那這到底啥數才是水仙花?又怎麼用PHP程式實作?下面我們就來一一介紹~
首先給大家介紹水仙花數即阿姆斯特朗數的定義:
水仙花數也被稱為超完全數字不變數、自戀數、自冪數、阿姆斯壯數或阿姆斯壯數(Armstrong number)。水仙花數是指一個 3 位數,它的每個位上的數字的 3次方和等於它本身(例如:1^3 5^3 3^3 = 153)。
這下應該明白了吧,然後咱們繼續:
#直接開啟編輯器,上程式碼!
<?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是阿姆斯特朗数吗?".armstrong_number(153); echo "<br>21是阿姆斯特朗数吗?".armstrong_number(21); echo "<br>4587是阿姆斯特朗数吗?".armstrong_number(4587);
來運行結果看看:
#在上述例子裡,我們給了三個數字來判斷,分別是153 、21、4587。
明顯153是阿姆斯壯數,而21和4587都不是,所以回傳了false。
其實在PHP程式中想要實現判斷是不是阿姆斯壯數,最關鍵的一點就是它的判定公式!
如同上面定義所說的,符合每個位上的數字的3次方和等於它本身的數就稱為阿姆斯壯數,也就是水仙花數。
那麼範例中一個關鍵程式碼部分就是「$sum =$sum pow((string)$num{$i},$sl);
」了。
這裡pow()是PHP中一個內建函數,用來計算x的y次方。
至此,是不是就淺顯易懂了?
雖然不難,但是個人覺得比較有意思,這樣的思路,也希望能幫助到需要的朋友~
PHP視頻教程請戳->https://www.php.cn/course/list/29/type/2.html
#以上是不要錯過PHP和阿姆斯特朗數的愛恨情仇的詳細內容。更多資訊請關注PHP中文網其他相關文章!