/*
水仙花数
如果一个三位数 个位,十位,百位的立方和,等于这个数值,就称为水仙花数
求 所有 3位数中 那些数 是 水仙花 数
思路 : 本质是 判断 123 是否是水仙花数
就是 1的立方 + 2 的立方 + 3 的立方 == 123 本身
关键是 如何获取 3位数 每一位上的数值
*/
var num = 123;
// 百位数值 num是123 num除以100 是 1.23 然后 parseInt() 获取整数部分 就是 1
var a = parseInt( num / 100 );
console.log(a);
// 十位数值
// 方法1 num是 123 减去 百位数值 a*100 也就是 123-1*100 结果是 23
// 结果 除以 10 也就是 23/10 是 2.3 再对结果取整 就是 2
// var b = parseInt( ( num - a*100 ) / 10 );
// 方法2 num 对 100 求余数 123 % 100 余数就是 23
// 结果 除以 10 也就是 23/10 是 2.3 再对结果取整 就是 2
var b = parseInt( (num % 100) / 10 );
console.log(b);
// 个位数
// 方法1 : num 减去 a*100 减去 b*10 结果就是 个位数值
// var c = num - a*100 - b*10;
// 方法2 : num 对 10 求余数 , 结果就是 个位数值
var c = num % 10;
console.log(c);
// 现在只要随机生成 100-999的所有三位数值
// 使用上述方法,获取生成数值,百位,十位,个位的数值
// 然后进行判断,是否符合条件即可
for(var i = 100 ; i <= 999 ; i++){
var a = parseInt( i / 100 );
var b = parseInt( (i % 100 ) / 10 );
var c = parseInt( i % 10 );
if(a*a*a + b*b*b + c*c*c == i){
console.log(`数值${i}是水仙花数`);
}
}