首页 > 后端开发 > php教程 > php程序检查数字是否是阿姆斯特朗号

php程序检查数字是否是阿姆斯特朗号

DDD
发布: 2025-02-07 11:27:10
原创
726 人浏览过

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 中的实现。

<?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>153 是阿姆斯特朗数。</code>
登录后复制

时间复杂度:O(d * n),其中 d 是位数,n 是每个数字的幂 空间复杂度:O(1),常数空间

以上是php程序检查数字是否是阿姆斯特朗号的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
怎么学好php
来自于 1970-01-01 08:00:00
0
0
0
PHP扩展intl
来自于 1970-01-01 08:00:00
0
0
0
php数据获取?
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板