ホームページ >バックエンド開発 >PHPチュートリアル >番号がアームストロング番号であるかどうかを確認するPHPプログラム

番号がアームストロング番号であるかどうかを確認するPHPプログラム

DDD
DDDオリジナル
2025-02-07 11:27:10684ブラウズ

PHP Program to Check if a Number is an Armstrong Number

アームストロング番号

Armstrong番号は、数値の各数字のnパワーの合計を指します。数値自体に等しく、nは数の数字数です。この記事では、特定の番号がアームストロング番号であるかどうかを確認する方法について説明します。

いくつかの入力と出力の例を使用して、アームストロングの数を理解しましょう。

を入力します
<code>9474</code>

output

<code>是</code>

説明

これは4桁の数字です。この数値の数字は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>

output

<code>是</code>

説明

これは3倍の数字です。この数値の数字は1、5、および3です。

<code>153 = 1<sup>3</sup> + 5<sup>3</sup> + 3<sup>3</sup><br>= 1 + 125 + 27<br>=153</code>

したがって、これはアームストロングの数です。

ソリューションメソッド

入力として整数を取得します。最初に、桁の総数を計算する関数を書き込みます。次に、変数を初期化して合計を保存し、元の番号を任意の変数に保存します。ここで、Modulo演算子を使用して、数値の各数を抽出し、数字の電力を桁数に追加します。最後に、計算された合計が元の数値に等しいかどうかを確認します。

php実装

手順に続くPHPの上記の問題の解決策にアクセス -

  • 関数を書き込み、数のビット数を計算します。
  • さて、別の関数を記述して、数字がアームストロング番号であるかどうかを確認します。
  • 変数の合計を初期化し、元の番号を保存します
  • Modulo演算子を使用して、各ナンバーを1つずつ抽出し、数のパワーを数値に追加します。
  • 分割演算子を使用して、最後の数字を削除します。
  • ループを終了した後、合計が元の数値に等しいかどうかを確認します。
  • もしそうなら、これはアームストロング数です。

以下は、上記の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>
output

<code>153 是阿姆斯特朗数。</code>

時間の複雑さ:o(d * n)、dは数字の数、nは各数のパワーです スペースの複雑さ:o(1)、一定スペース

以上が番号がアームストロング番号であるかどうかを確認するPHPプログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。