1、先定义求n!的函数,可以用for循环,也可以用递归函数 2、再用循环累加求解 1!+2!+3!+....+n! 3、要求从键盘输入n,并对输入的n进行验证,保证n为数字,为错误弹出“非数字”对话框,并继续输入。 4、在页面输出运算结果用JavaScript
时间: 2024-09-18 21:00:39 浏览: 39
首先,我们来编写一个JavaScript函数,可以同时使用for循环和递归的方式计算阶乘:
**使用for循环求阶乘:**
```javascript
function factorialFor(n) {
if (isNaN(n)) {
alert("请输入一个数字!");
return;
}
let result = 1;
for (let i = 1; i <= n; i++) {
result *= i;
}
return result;
}
```
**使用递归求阶乘:**
```javascript
function factorialRecursive(n) {
if (isNaN(n) || n < 0) {
alert("请输入一个非负整数!");
return;
}
return (n === 0 || n === 1) ? 1 : n * factorialRecursive(n - 1);
}
```
接着,我们累加计算1! + 2! + ... + n!:
```javascript
function sumFactorials(n) {
let sum = 0;
for (let i = 1; i <= n; i++) {
sum += factorialFor(i); // 或者 sum += factorialRecursive(i);
}
return sum;
}
// 用户输入
let input = prompt("请输入一个正整数:");
if (!isNaN(input)) {
let n = parseInt(input);
console.log(`1! + 2! + ... + ${n}! 的和为:`, sumFactorials(n));
} else {
alert("请输入一个数字!");
}
```
在这个代码示例中,用户会先看到提示输入一个数字,然后程序会验证输入是否有效,如果输入不是数字则会弹出警告并要求重新输入。最终,页面控制台将输出累加后的结果。
阅读全文