跳到主要内容

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

示例 1:检查三位数的阿姆斯特朗数

// 程序用来检查三位数的阿姆斯特朗数

let sum = 0;
const number = prompt("输入一个三位正整数:");

// 创建一个临时变量
let temp = number;
while (temp > 0) {
// 找到个位数
let remainder = temp % 10;

sum += remainder * remainder * remainder;

// 去除数字的最后一位
temp = parseInt(temp / 10); // 将浮点数转换为整数
}
// 检查条件
if (sum == number) {
console.log(`${number} 是一个阿姆斯特朗数`);
} else {
console.log(`${number} 不是阿姆斯特朗数。`);
}

输出

输入一个三位正整数:153
153 是一个阿姆斯特朗数。

上述程序从用户那里获取输入。然后,

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

  2. 使用 while 循环来迭代一个三位值。

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

  4. 通过三次乘以该数字来计算余数位的立方,并将立方和加到 sum 变量中。

  5. 该数字除以 10 来去除最后一位数字。

  6. while 循环继续迭代并将数字除以 10,直到数字为 0

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

注意:在上述程序中,数字的立方可以使用指数运算符 ** 计算。例如,sum += remainder ** 3;

示例 2:检查 n 位数的阿姆斯特朗数

// 程序用来检查 n 位数的阿姆斯特朗数

// 获取输入
const number = prompt("输入一个正整数");
const numberOfDigits = number.length;
let sum = 0;

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

while (temp > 0) {
let remainder = temp % 10;

sum += remainder ** numberOfDigits;

// 去除数字的最后一位
temp = parseInt(temp / 10); // 将浮点数转换为整数
}

if (sum == number) {
console.log(`${number} 是一个阿姆斯特朗数`);
} else {
console.log(`${number} 不是阿姆斯特朗数。`);
}

输出

输入一个正整数:92727
92727 是一个阿姆斯特朗数

在上面的程序中,检查了一个 n 位数的阿姆斯特朗数。

当用户输入一个数字时,它被当作字符串处理。length 属性用来返回字符串的长度。

用户输入的数字存储在一个名为 temp 的变量中。并且使用了一个 while 循环来迭代,直到它的值小于 0。数字的每一位都被提升到该数字长度的幂次方。