水仙花是从3位数开始的
但根据理论1位数都是,2位数可能存在
let b=0;
let c="";
let a1=[];
for(let a=10;a<1000;a++){
//1.这个for的范围就是找水仙花数的范围,
//我的电脑最多跑到了1亿以下,再多跑不了,如果有机子性能好的可以继续
//往下测试,把a的取值范围删掉即可,
//2.如果是判断是否是水仙花数,把外围for删掉即可
// let a=parseInt(prompt("请输入一个三位正整数:"));//接收用户的数字判断
c=`${a}`;//因为a在接下来会变,所以把值赋给c
for(let i=0;i<c.length;i++){
a1[i]=parseInt(a%10);
// alert(a1[i]);
a=parseInt(a/10);
}//取到数的每一位
for(let i=0;i<c.length;i++){
b=b+(parseInt(Math.pow(a1[i],c.length)));//接收a1[i]的c.lenght次方
}//alert(b);每一位的c.lenght次方相加
if(parseInt(b)===parseInt(c)){
console.log(`${c}是一个水仙花数`);
}else{
}a1=[];//清空数组
b=0;//将a1,a,b变为初值
a=parseInt(c);//将a赋为原值;
}
Math.pow(2,3);是JavaScript的方法是指2的3次方值为6;
都写在注释里了
各位大佬不喜勿喷。。。。。。