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 检查阿姆斯特朗数程序


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

// program to find Armstrong number between intervals

// take an input
const lowNumber = parseInt(prompt('Enter a positive low integer value: '));
const highNumber = parseInt(prompt('Enter a positive high integer value: '));

console.log ('Armstrong Numbers:');

// looping through lowNumber to highNumber
for (let i = lowNumber; i <= highNumber; i++) {

    // converting number to string 
    let numberOfDigits = i.toString().length;

    let sum = 0;

    // create a temporary variable
    let temp = i;

    /* loop through a number to find if 
    a number is an Armstrong 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 == i) {
        console.log(i);
    }
}

输出

Enter a positive low integer value: 8
Enter a positive high integer value: 500
Armstrong Numbers: 
8
9
153
370
371
407

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

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

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

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

let numberOfDigits = i.toString().length;

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

  1. 用户输入的下限数字存储在临时 变量 temp 中。
  2. 使用 while 循环来迭代数字。
    1. 模运算符 % 用于获取每个数字。当一个数除以 10 时,余数就是最后一位数。在第一次迭代中,8 % 10 得到 8
    2. 余数乘以该数字的位数(这里是 1)并计算总和。
    3. 数字除以 10 以删除最后一位数,即 8 / 10 得到 0。
  3. 最后,将总和与用户输入的数字进行比较。如果总和与数字相等,则显示阿姆斯特朗数。

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

你觉得这篇文章有帮助吗?

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

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

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