首頁 >後端開發 >php教程 >php程序檢查數字是否是阿姆斯特朗號

php程序檢查數字是否是阿姆斯特朗號

DDD
DDD原創
2025-02-07 11:27:10684瀏覽

PHP Program to Check if a Number is an Armstrong Number

阿姆斯特朗數

阿姆斯特朗數是指一個數的各位數字的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 中實現上述問題的解決方案 -

  • 我們編寫一個函數來計算數字中的位數。
  • 現在,編寫另一個函數來檢查一個數字是否是阿姆斯特朗數。
  • 初始化一個變量 sum 並存儲原始數字
  • 現在使用模運算符逐個提取數字的每個數字,並將數字的冪加到數字計數。
  • 使用除法運算符刪除最後一位數字。
  • 退出循環後,檢查總和是否等於原始數字。
  • 如果是,則這是一個阿姆斯特朗數。

示例

以下是按照上述討論的實現步驟在 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中文網其他相關文章!

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