所谓'水仙花数'是指一个3位数,其各位数字立方和等于该数本身。
例如:153是一个 '水仙花数',
因为153 = 1的三次方 + 5的三次方 + 3的三次方。
第一种方法
for (a = 1; a < 10; a++) {
for (b = 0; b < 10; b++) {
for (c = 0; c < 10; c++) {
if (a * a * a + b * b * b + c * c * c == a * 100 + b * 10 + c) {
document.write(a * 100 + b * 10 + c);
document.write("<br>");
}
}
}
}
第二种方法
for(i = 100; i < 1000; i++){
var a = parseInt(i / 100);//找百位数
var b = parseInt(i % 100 / 10);//找十位数
var c = parseInt(i % 100 % 10)//找个位数
if((a * a * a + b * b * b + c * c * c) == i){
document.write(i);
document.write("<br>");
}
}
反验证是否属于水仙花数
function isNumber(num) {
if (num && Number(num)) {
var a = parseInt(num / 100); //找百位数
var b = parseInt(num % 100 / 10); //找十位数
var c = parseInt(num % 100 % 10); //找个位数
var resault = '';
if (a * a * a + b * b * b + c * c * c == num) {
resault = true;
} else {
resault = false;
}
} else {
alert('请输入数值')
}
return resault;
}
document.write(isNumber('371'));
哈哈,知道水仙花是什么了么?在这个地方主要是练习所学的for循环嵌套以及if语句,function的用法。效果分别是什么呢?前边的数字是第一种方法用了document显示在了页面上。
true则是最后一个反验证,371是水仙花数所以得出true;
然后第二种方法我用了console显示在控制台里边:
两种方法结果一样,不出意外会有很多种方法得出同样的正确答案。敬请指导。