1.水仙花数的含义:
"水仙花数"是指一个三位数其各位数字的立方和等于该数本身。例如153是“水仙花数”,因为:153 = 1³ + 5³ + 3³。
2、算法分析
根据“水仙花数”的定义,判断一个数是否为“水仙花数”,最重要的是要把给出的三位数的个位、十位、百位分别拆分,并求其立方和(设为sum),若sum与给出的三位数相等, 三位数为“水仙花数”,反之,则不是。
3、算法设计
“水仙花数”是指满足某一条件的三位数,根据这一信息可以确定整数的取值范围是 100〜999。对应的循环条件如下:
for (n=10; n<1000; n++) {
//祝你遍历山河 觉得人间值得
}
代码说明:
将n整除以100,得出n在百位上的数字a。
将n取100的余数,除以10得出十位上的数。
将n取100的余数,取10的余数得出个位上的数。
求得a,b,c 三个数字的立方和是否与n相等,如果相等则证明该数为水仙花数。
代码实现
for (var n = 100; i < 1000; i++) { //整数的取值范围
var a = parseInt(n / 100); //找百位数
var b = parseInt(n % 100 / 10); //找十位数
var c = parseInt(n % 100 % 10); //找个位数
if (a * a * a + b * b * b + c * c * c == n) { //进行判断 /*各位上的立方和是否与原数n相等*/
console.log(n); //返回结果
}
}
运行结果:
result :153 370 371 407