定义函数,寻找所有的喇叭花数

254 阅读1分钟

喇叭花数是这样一个三位数:个位的阶乘 + 十位的阶乘 + 百位的阶乘之和 等于他本身。

定义一个函数,判断一个数是不是一个喇叭花数。这里面需要用到阶乘函数。

再定义一个函数,求输入数字的阶乘。

遍历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>