各位看客,疑問有沒有充滿你大大的腦袋?哈哈,別懵,今天又要給大家介紹一個好玩的方法,翻譯本文標題的大白話就是“用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