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:检查三位数阿姆斯特朗数

// program to check an Armstrong number of three digits

let sum = 0;
const number = prompt('Enter a three-digit positive integer: ');

// create a temporary variable
let temp = number;
while (temp > 0) {
    // finding the one's digit
    let remainder = temp % 10;

    sum += remainder * remainder * remainder;

    // removing last digit from the number
    temp = parseInt(temp / 10); // convert float into integer
}
// check the condition
if (sum == number) {
    console.log(`${number} is an Armstrong number`);
}
else {
    console.log(`${number} is not an Armstrong number.`);
}

输出

Enter a three-digit positive integer: 153
153 is an Armstrong number.

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

  1. 用户输入的数字存储在临时 变量 temp 中。
  2. 使用 while 循环来迭代三位数的值。
    1. 使用模运算符 % 来获取每个数字。当一个数除以10时,余数就是最后一位数字。在第一次迭代中,153 % 10 得到 3
    2. 将余数数字进行三次乘方(立方),然后加到 sum 变量中。
    3. 将数字除以10以去除最后一位数字。
    4. while 循环继续迭代并将数字除以10,直到数字变为0
  3. 最后,将和与用户输入的数字进行比较。如果和与数字相等,则该数字是阿姆斯特朗数。

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


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

// program to check an Armstrong number of n digits

// take an input
const number = prompt("Enter a positive integer");
const numberOfDigits = number.length;
let sum = 0;

// create a temporary variable
let temp = number;

while (temp > 0) {

    let remainder = temp % 10;

    sum += remainder ** numberOfDigits;

    // removing last digit from the number
    temp = parseInt(temp / 10); // convert float into integer
}

if (sum == number) {
    console.log(`${number} is an Armstrong number`);
}
else {
    console.log(`${number} is not an Armstrong number.`);
}

输出

Enter a positive integer: 92727
92727 is an Armstrong number

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

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

用户输入的数字存储在 temp 变量中。然后使用 while 循环迭代,直到其值小于 0。数字的每一位都被提升到数字长度的幂。


另请阅读

在结束之前,让我们来检验一下你对 JavaScript 程序判断阿姆斯特朗数的知识!你能解决下面的挑战吗?

挑战

编写一个函数来检查一个数字是否为阿姆斯特朗数。

  • 三位数的阿姆斯特朗数是一个整数,其各位数字的立方和等于它本身。
  • 例如,371 是一个阿姆斯特朗数,因为 3 ^ 3 + 7 ^ 3 + 1 ^ 3 = 27 + 343 + 1 = 371
  • 如果 num 是阿姆斯特朗数,则返回 "Armstrong"。否则,返回 "Not Armstrong"
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战