跳到主要内容

JavaScript 程序:在一个区间内找出阿姆斯特朗数

要理解这个示例,你应该具备以下 JavaScript 编程 主题的知识:

一个正整数被称为阿姆斯特朗数(n阶),如果满足以下条件:

abcd... = an + bn + cn + dn + ...

在三位数的阿姆斯特朗数的情况下,每个数字的立方和等于该数本身。例如,153 是一个阿姆斯特朗数,因为:

153 = 1*1*1 + 5*5*5 + 3*3*3

同样,1634 也是一个阿姆斯特朗数,因为:

1634 = 1*1*1*1 + 6*6*6*6 + 3*3*3*3 + 4*4*4*4

在尝试此程序之前,请访问 JavaScript 程序检查阿姆斯特朗数

示例:查找两个区间之间的阿姆斯特朗数

// 程序查找两个区间之间的阿姆斯特朗数

// 获取输入
const lowNumber = parseInt(prompt("输入一个较低的正整数值:"));
const highNumber = parseInt(prompt("输入一个较高的正整数值:"));

console.log("阿姆斯特朗数:");

// 在 lowNumber 和 highNumber 之间循环
for (let i = lowNumber; i <= highNumber; i++) {
// 将数字转换为字符串
let numberOfDigits = i.toString().length;

let sum = 0;

// 创建一个临时变量
let temp = i;

/* 循环通过一个数字来查找
数字是否为阿姆斯特朗数 */
while (temp > 0) {
let remainder = temp % 10;
sum += remainder ** numberOfDigits;
// 去除数字的最后一位
temp = parseInt(temp / 10); // 将浮点数转换为整数
}

if (sum == i) {
console.log(i);
}
}

输出

输入一个较低的正整数值:8
输入一个较高的正整数值:500
阿姆斯特朗数:
8
9
153
370
371
407

在上述程序中,用户被提示输入两个整数。一个是较低的区间整数,另一个是较高的区间整数。

parseInt() 将数值字符串转换为整数值。

for 循环用于遍历用户提供的两个数字。

toString() 方法用于将数字转换为字符串。length 属性用于查找字符串的长度。因此,在这种情况下,length 给出了数字中的总位数。

let numberOfDigits = i.toString().length;

在第一个 for 循环迭代中(i = 8),

  1. 用户输入的较低数字存储在临时变量 temp 中。

  2. 使用 while 循环来迭代数字。

  3. 取模运算符 % 用于获得每个位上的数字。当数字除以 10 时,余数是最后一个数字。在第一次迭代中,8 % 10 得到 8

  4. 余数乘以该数字的位数(这里是 1)并计算求和。

  5. 数字除以 10 来移除最后一个数字,即 8 / 10 得 0。

最后,将 sum 与用户输入的数字进行比较。如果 sum 和数字相等,则显示阿姆斯特朗数。

循环继续处理用户提供的较低和较高边界之间的所有数字。在上述示例中,循环从 8 执行到 500