📜  JavaScript程序以间隔查找阿姆斯壮编号

📅  最后修改于: 2020-09-27 04:46:48             🧑  作者: Mango

在此示例中,您将学习用JavaScript编写程序以在两个整数值之间找到一个Armstrong数字。

在下列情况下,正整数称为Armstrong数( n阶):

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

对于3位数的阿姆斯特朗数,每个数位的立方和等于该数字本身。例如, 153是Armstrong的数字,因为:

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程序以检查Armstrong号。


示例:两个间隔之间的阿姆斯壮数
// program to find Armstrong number between intervals

// take an input
let lowNumber = parseInt(prompt('Enter a positive low integer value: '));
let 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. 最后,将总和与用户输入的数字进行比较。如果总和与数字相等,则显示阿姆斯壮数字。

用户提供的所有中间数字将继续循环。在上面的示例中,循环执行8500次