如果一个正整数称为阿姆斯特朗数(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
示例1:检查阿姆斯壮三位数
// program to check an Armstrong number of three digits
let sum = 0;
let 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.
上面的程序接受用户的输入。然后,
- 用户输入的数字存储在临时变量
temp
。 -
while
循环用于迭代三位数的值。- 模运算符
%
用于获取每个数字。当数字除以10时 ,余数是最后一位数字。在第一次迭代中,153 % 10
给出3 。 - 剩余数字的立方是通过将数字乘以三来计算的。并将多维数据集添加到
sum
变量。 - 数字除以10以除去最后一位。
- 模运算符
- 最后,将总和与用户输入的数字进行比较。如果总和与数字相等,则该数字为阿姆斯壮数字。
注意 :在上述程序中,可以使用指数运算符 **
计算一个数字的立方。例如, sum += remainder ** 3;
示例2:检查阿姆斯壮n位数字
// program to check an Armstrong number of n digits
// take an input
let number = prompt("Enter a positive integer");
let 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位的Armstrong数字。
用户输入数字时,将其视为字符串。 length
属性返回字符串的长度。
用户输入的数字存储在temp
变量中。并且使用while
循环进行迭代,直到其值大于0为止。数字的每个数字都升为数字长度的乘方。