当数字的每个位数的立方和等于该数字本身时,这个数字被称为水仙花数。以下是使用 JavaScript 编写一个求解水仙花数的算法:
function findNarcissisticNumbers(start, end) {
const narcissisticNumbers = [];
for (let i = start; i <= end; i++) {
let sum = 0;
let num = i;
while (num > 0) {
const digit = num % 10;
sum += Math.pow(digit, 3);
num = Math.floor(num / 10);
}
if (sum === i) {
narcissisticNumbers.push(i);
}
}
return narcissisticNumbers;
}
// 示例用法
const startNumber = 100;
const endNumber = 999;
const result = findNarcissisticNumbers(startNumber, endNumber);
console.log(result); // 输出 [153, 370, 371, 407]
上述代码通过循环遍历指定范围内的数字,并计算每个数字的各位数立方和。如果计算结果等于原始数字,则将其添加到结果数组中。最后返回包含所有水仙花数的数组。
内容由零声教学AI助手提供,问题来源于学员提问