面试题:求100-999的喇叭花数

解释:满足 abc = a!+b!+c!这个公式的数字,叫喇叭花数。求100-999中的喇叭花数。

答案为:145。
145 = 1!+4!+5!

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //寻找喇叭花数
      //先封装一个函数,用来算阶乘。
      function factorial(n) {
        var result = 1;
        for (var i = 1; i <= n; i++) {
          result *= i;
        }
        return result;
      }
      //在100-999中寻找喇叭花数
      for (i = 100; i <= 999; i++) {
        var i_str = i.toString();

        var a = Number(i_str[0]);
        var b = Number(i_str[1]);
        var c = Number(i_str[2]);

        if (factorial(a) + factorial(b) + factorial(c) == i) {
          console.log(i);
        }
      }
    </script>
  </body>
</html>