首頁  >  文章  >  後端開發  >  不要錯過PHP和阿姆斯特朗數的愛恨情仇

不要錯過PHP和阿姆斯特朗數的愛恨情仇

藏色散人
藏色散人原創
2021-07-29 17:52:162018瀏覽

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

來運行結果看看:

不要錯過PHP和阿姆斯特朗數的愛恨情仇

#在上述例子裡,我們給了三個數字來判斷,分別是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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn