介绍
水仙花数(narcissistic number),narcissistic 本意是"自恋的;自我陶醉的;自我欣赏的"。
在希腊神话中,貌美青年那喀索斯(narcissus)爱上了自己在水中的倒影,他死后化作水仙花,此花即因之命名。
所以,水仙花数也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number)。
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 +1^3+ 3^3 = 153)
打印所有水仙花数(JS)
<script>
// 判断该数字是否为水仙花数
function isDaffodial(number) {
// 判断是否为三位数数字
number = Number(number);
if (!isNaN(number) && number >= 100 && number <= 999) {
// 拆位(第一种方法)
// 获取百位数
var hundredth_number = Math.floor(number / 100);
// 获取十位数
var ten_number = Math.floor(number / 10) % 10;
// 获取个位数
var bit_number = number % 10;
/*
// 拆位(第二种方法)
// 将数值转为字符串
number = number.toString();
var hundredth_number = Number(number.charAt(0));
// 获取十位数
var ten_number = Number(number.charAt(1));
// 获取个位数
var bit_number = Number(number.charAt(2));
// 将字符串转化为数值
number = Number(number);
*/
// 每位数3次幂相加
if (Math.pow(hundredth_number, 3) + Math.pow(ten_number, 3) + Math.pow(bit_number, 3) == number) {
console.log(number);
}
}
}
// 所有水仙花数
function allArithmeticDaffodil() {
for (let i = 100; i <= 999; i++) {
isDaffodial(i);
}
}
allArithmeticDaffodil();
</script>