Q1 用js表达阶乘 n!=1×2×3×…×(n-1)×n。递归方式定义:0!=1,n!=(n-1)!×n。
var n = parseInt(window.prompt("input"));
function number(n) {
if (n > 0){
var a = 1;
for (i=1; i<=n; i++) {
a*=i;
}
return a;
} else if (n==0) {
return 0;
}else {
return "error!";
}
}
document.write(number(n));
方法二: 递归
function number(n) {
if (n == 1||n == 0) {
return 1;
}
return n * number(n - 1); //n!=(n-1)!×n
}
document.write(number(n));
易错点,var a = 1;和return a;不能放在for循环内部,因为这代表每次循环a都会被重新赋值为1,且每次都输出为1,这就让循环无效了。
Q2 查找数组的最值
function arrayMax(arr) {
var a = arr.length;
var x = -Infinity;
for (i =