面试题:求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>