甲水仙花数在给定数量的碱b是一个数即是它自己的数字的总和每个凸起到的数字的数目的幂。
例如-
153 = 1^3 + 5^3 + 3^3 = 1+125+27 = 153
同样,
1 = 1^1 = 1
我们将首先使用while循环对数字进行计数。然后在另一个while循环中,我们选择数字的最后一位,并将其(count)次幂加到变量和上。循环之后,我们返回一个布尔值,检查总和是否等于数字。
该方法的代码将是-
const isNarcissistic = (num) => {
let m = 1, count = 0;
while(num / m > 1){
m *= 10;
count++;
};
let sum = 0, temp = num;
while(temp){
sum += Math.pow(temp % 10, count);
temp = Math.floor(temp / 10);
};
return sum === num;
};
console.log(isNarcissistic(153));
console.log(isNarcissistic(1634));
console.log(isNarcissistic(1433));
console.log(isNarcissistic(342));输出结果
控制台中的输出将为-
true true false false