JavaScript 中的阿姆斯特朗数

2025年4月19日 | 阅读 5 分钟

阿姆斯特朗数是一种特殊的整数,其中各位数字的幂之和(幂等于数字的长度)等于数字本身。例如,153 是一个阿姆斯特朗数,因为 1^3 + 5^3 + 3^3 = 153。

阿姆斯特朗数的定义

阿姆斯特朗数是指各位数字的立方和等于数字本身。它也可以被描述为水仙花数。如果一个数字的各位数字的n次幂之和(其中n代表数字的位数)等于该数字本身,则该数字被称为水仙花数或阿姆斯特朗数。

我们可以借助一个简单的 JavaScript 程序来识别提供的数字是否为阿姆斯特朗数。该程序将接收一个整数作为输入,并告诉我们该数字是否为阿姆斯特朗数。接下来的部分将介绍如何在 JavaScript 中创建这样的程序。

JavaScript 中阿姆斯特朗数的逻辑

在用于测试数字是否为阿姆斯特朗数的 JavaScript 代码中,我们将接受一个整数。根据上面给出的阿姆斯特朗数的定义,如果给定的数字有 n 位,那么当每个数字的 n 次幂之和与原始数字相同(等于)时,它就是阿姆斯特朗数。因此,查找阿姆斯特朗数的逻辑将是:

我们将使用 JavaScript 循环从输入数字中提取所有数字。然后,我们将计算每个提取出的数字的 n 次幂并将它们相加。如果总和与输入的原始数字相同,则该数字是阿姆斯特朗数。如果总和不等于输入的数字,则该数字不是阿姆斯特朗数。就时间复杂度而言,检查整数 'n' 是否为阿姆斯特朗数需要 O(log(n)) 的时间复杂度。

检查数字是否为阿姆斯特朗数的 JavaScript 程序的流程图如下。

Armstrong Number in JavaScript

一个三位数 153 的例子

因此,153 被归类为阿姆斯特朗数。

现在考虑

由于这不等于原始数字,所以 123 不是阿姆斯特朗数。总共有四个三位数阿姆斯特朗数。对于所有其他幂,n 的值将不同。对于四位数,幂将是 4。

例如,1634 可以计算如下:

这里,因为我们有 4 位数,所以我们使用了 4 作为幂。

JavaScript 中的阿姆斯特朗数示例

以下是一些用 JavaScript 实现的阿姆斯特朗数示例

示例 1:使用 while 循环

代码

在本节中,我们对查找阿姆斯特朗数的公式进行了泛化。首先,我们找出用户输入的数字的位数,并用它来确定计算所需的幂。我们使用 while 循环逐个读取数字的每一位,然后进行必要的处理。

输出

对于有效的阿姆斯特朗数

Armstrong Number in JavaScript

对于无效的阿姆斯特朗数

Armstrong Number in JavaScript

示例 2:使用 for 循环

我们也可以使用 for 循环进行迭代来求和。在两种情况下,查找阿姆斯特朗数的策略都将保持不变。这只是为了演示另一种 JavaScript 实现。

代码

在此示例中,我们使用 for 循环来求和。我们可以继续遍历每个数字,直到完成所有数字。

输出

对于有效的阿姆斯特朗数

Armstrong Number in JavaScript

对于无效的阿姆斯特朗数

Armstrong Number in JavaScript

结论

  1. 一个 n 位数如果其各位数字的 n 次幂之和等于该数字本身,则为阿姆斯特朗数。
  2. 您可以通过一个简单的 JavaScript 程序来确定一个数字是否为阿姆斯特朗数。
  3. 检查整数 'n' 是否为阿姆斯特朗数的时间复杂度为 O(log(n))。

下一主题JavaScript XOR