一个正整数称为阿姆斯特朗数(n 阶),如果:
abcd... = an + bn + cn + dn + ...
对于 3 位数的阿姆斯特朗数,每位数的立方和等于该数本身。例如,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
属性用于查找字符串的长度。因此,在这种情况下,
length
给出了数字中的总位数。
let numberOfDigits = i.toString().length;
在第一个
用户输入的较低数字存储在临时变量 for
循环迭代(i = 8)中,
temp
中。
while
循环用于迭代数字。 模运算符 %
用于获取每个数字。一个数除以10,余数就是最后一位。在第一次迭代中,8 % 10
给出 8。 余数乘以该数字的位数(此处为 1),然后计算出总和。 数字除以10去除最后一位,即8/10
得到0。
最后,将总和与用户输入的数字进行比较。如果总和和数字相等,则显示阿姆斯壮数。
对于用户提供的上下限之间的所有数字,循环继续。在上面的示例中,循环从 8 到 500 执行。