喇叭花数是这样一个三位数:个位的阶乘 + 十位的阶乘 + 百位的阶乘之和 等于他本身。
定义一个函数,判断一个数是不是一个喇叭花数。这里面需要用到阶乘函数。
再定义一个函数,求输入数字的阶乘。
遍历100-999之间的三位数,把遍历的结果都放到喇叭花数函数里面去执行,如果是,就打印出这个三位数。
<script>
// 定义一个函数,判断是不是喇叭花数
function flowerNum(num) {
var str = String(num);
// 取出这些数字的个位十位百位
var num1 = Number(str["0"]);
var num2 = Number(str["1"]);
var num3 = Number(str["2"]);
// 如果这三个数字的阶乘之和是这个数字本身,就返回ture
// 还需要在下面继续定义阶乘函数
if (jiecheng(num1) + jiecheng(num2) + jiecheng(num3) === i) {
return true;
}
return false;
}
//三位数,等于个位十位百位的阶乘相加
// 先定义一个函数,求 输入数字的阶乘
function jiecheng(num) {
var result = 1;
// 1---1
// 2---1*2
// 3---1*2*3
for (var i = 1; i <= num; i++) {
result *= i;
}
return result;
}
// 遍历所有的三位数,放到喇叭花数里面执行,如果是 ,就输出
for (var i = 100; i <= 999; i++) {
if (flowerNum(i)) {
console.log(i);
}
}
</script>