JavaScript中编程将所有“水仙花数”打印出来,并打印其总个数。
“水仙花数”是一个各个位立方之和等于该整数的三位数(个位数立方 + 十位数立方 + 百位数立方 = 这个整数)。
方法一:
var count = 0; //水仙花总个数数
var numArr = []; // 保存水仙花数;
// 百位数
for(var i = 1; i < 10; i++) {
// 十位数
for (var j = 0; j < 10; j++) {
for( var k = 0; k <10; k++) {
// console.log(100 * i + j*10 + k);
var n1 = 100 * i + j*10 + k;
var n2 = Math.pow(i,3) + Math.pow(j,3) + k*k*k;
if (n1 == n2) {
count++;
// console.log("水仙花数:"+n1);
numArr.push(n1);
}
}
}
}
console.log("水仙花:",numArr,"总个数="+count);
如图所示:
方法二:
for( var i = 100; i < 999;i++) {
// i 三位数
// 百位
var n1 = Math.floor( i / 100) // 向下取整
// 十位
var n2 = Math.floor( i % 100 / 10);
// 个位
var n3 = i % 10;
var res = Math.pow(n1,3) + Math.pow(n2,3) + Math.pow(n3,3);
if (i == res) {
console.log("水仙花:"+i);
}
}
如图所示: