阿姆斯特朗數是指一個數的各位數字的n次冪之和等於該數本身,其中n是該數的位數。本文將討論如何檢查給定的數字是否為阿姆斯特朗數。
讓我們通過一些輸入輸出示例來了解阿姆斯特朗數。
<code>9474</code>
<code>是</code>
這是一個四位數。這個數的數字是 9、4、7 和 4。
<code>9474 = 9<sup>4</sup> + 4<sup>4</sup> + 7<sup>4</sup> + 4<sup>4</sup><br>= 6561 + 256 + 2401 + 256<br>= 9474</code>
所以,這是一個阿姆斯特朗數。
<code>153</code>
<code>是</code>
這是一個三位數。這個數的數字是 1、5 和 3。
<code>153 = 1<sup>3</sup> + 5<sup>3</sup> + 3<sup>3</sup><br>= 1 + 125 + 27<br>=153</code>
所以,這是一個阿姆斯特朗數。
我們將獲取一個整數作為輸入。我們首先編寫一個函數來計算數字的總位數。現在我們初始化一個變量來存儲總和,並將原始數字存儲在任何變量中。現在,我們使用模運算符提取數字的每個數字,並將數字的冪加到總位數。最後,我們檢查計算出的總和是否等於原始數字。
按照以下步驟在 PHP 中實現上述問題的解決方案 -
以下是按照上述討論的實現步驟在 PHP 中的實現。
<code class="language-php"><?php // 计算数字位数的函数 function countDigits($num) { return strlen((string)$num); } // 检查数字是否为阿姆斯特朗数的函数 function isArmstrong($num) { $k = countDigits($num); $sum = 0; $originalNum = $num; while ($num > 0) { $ld = $num % 10; $sum += pow($ld, $k); $num = (int)($num / 10); } return $sum == $originalNum; } $number = 153; if (isArmstrong($number)) { echo "$number 是阿姆斯特朗数。"; } else { echo "$number 不是阿姆斯特朗数。"; } ?></code>
<code>153 是阿姆斯特朗数。</code>
時間複雜度:O(d * n),其中 d 是位數,n 是每個數字的冪 空間複雜度:O(1),常數空間
以上是php程序檢查數字是否是阿姆斯特朗號的詳細內容。更多資訊請關注PHP中文網其他相關文章!