使用js写一个方法找出所有的"水仙花数"
水仙花数(Narcissistic Number)也被称为阿姆斯特朗数(Armstrong Number),它是一个n位数,其每一位数字的n次方之和等于它本身。例如,153是一个3位数的水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
以下是一个使用JavaScript编写的方法,用于找出所有的三位水仙花数:
function findNarcissisticNumbers() {
const results = [];
for (let i = 100; i < 1000; i++) {
const digits = i.toString().split('').map(Number);
const sum = digits.reduce((acc, val) => acc + Math.pow(val, 3), 0);
if (sum === i) {
results.push(i);
}
}
return results;
}
console.log(findNarcissisticNumbers()); // 输出所有的三位水仙花数
如果你想要找出所有n位的水仙花数,你可以稍微修改一下上面的函数,使其接受一个参数n,表示要找的水仙花数的位数:
function findNarcissisticNumbers(n) {
const results = [];
const min = Math.pow(10, n - 1);
const max = Math.pow(10, n);
for (let i = min; i < max; i++) {
const digits = i.toString().split('').map(Number);
const sum = digits.reduce((acc, val) => acc + Math.pow(val, n), 0);
if (sum === i) {
results.push(i);
}
}
return results;
}
console.log(findNarcissisticNumbers(3)); // 输出所有的三位水仙花数
console.log(findNarcissisticNumbers(4)); // 输出所有的四位水仙花数
// 你可以继续尝试其他位数的水仙花数
浙公网安备 33010602011771号