Maison >développement back-end >tutoriel php >Programme PHP pour vérifier si un numéro est un numéro Armstrong

Programme PHP pour vérifier si un numéro est un numéro Armstrong

DDD
DDDoriginal
2025-02-07 11:27:10687parcourir

PHP Program to Check if a Number is an Armstrong Number

Numéro Armstrong

Le nombre Armstrong fait référence à la somme de n pouvoirs de chaque chiffre d'un nombre égal au nombre lui-même, où n est le nombre de chiffres du nombre. Cet article discutera de la façon de vérifier si un numéro donné est un numéro Armstrong.

Exemple

Comprenons le numéro Armstrong avec quelques exemples d'entrée et de sortie.

Entrez

<code>9474</code>

sortie

<code>是</code>

Explication

Il s'agit d'un numéro à quatre chiffres. Les nombres de ce nombre sont de 9, 4, 7 et 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>

Donc, c'est un numéro Armstrong.

Entrez

<code>153</code>

sortie

<code>是</code>

Explication

Il s'agit d'un triple chiffre. Les nombres de ce nombre sont de 1, 5 et 3.

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

Donc, c'est un numéro Armstrong.

Méthode de solution

Nous obtiendrons un entier en entrée. Nous écrivons d'abord une fonction pour calculer le nombre total de chiffres. Maintenant, nous initialisons une variable pour stocker la somme et stocker le numéro d'origine dans n'importe quelle variable. Maintenant, nous utilisons l'opérateur modulo pour extraire chaque nombre de nombres et ajoutant la puissance des nombres au nombre total de chiffres. Enfin, nous vérifions si la somme calculée est égale au numéro d'origine.

Implémentation PHP

Accédez à la solution au problème ci-dessus en PHP en suivant les étapes -

  • Nous écrivons une fonction pour calculer le nombre de bits dans un nombre.
  • Maintenant, écrivez une autre fonction pour vérifier si un nombre est un numéro Armstrong.
  • Initialiser une somme variable et stocker le numéro d'origine
  • Utilisez maintenant l'opérateur modulo pour extraire chaque numéro un par un et ajoutez la puissance du nombre au nombre de nombres.
  • Utilisez l'opérateur de division pour supprimer le dernier chiffre.
  • Après avoir quitté la boucle, vérifiez si la somme est égale au nombre d'origine.
  • Si c'est le cas, c'est un numéro Armstrong.

Exemple

Ce qui suit est la mise en œuvre des étapes de mise en œuvre discutées ci-dessus dans 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>

sortie

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

complexité temporelle: o (d * n), où d est le nombre de chiffres et n est la puissance de chaque nombre Complexité de l'espace: o (1), espace constant

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn