求阶层
方法一、
使用函数递归方法
function fn (n) {
if (n === 1) return 1
return n * fn(n - 1)
}
console.log(fn(5));
方法二、
使用函数尾递归方法
function fn (n, total) {
if (n === 1) return total
return fn(n - 1, n * total)
}
console.log(fn(5, 1));
方法三、
使用数组的reduce方法
var arr = []
for (let n = 10; n > 0; n--) {
arr.push(n)
}
var a = arr.reduce(function (x, y) {
return x * y
}, 1)
console.log(a);
求斐波那契数列
方法一、
使用函数递归的方法
var arr = []
function fn (n, a1 = 1, a2 = 1) {
if (n <= 0) return a1
arr.push(a2)
return fn(n - 1, a2, a1 + a2)
}
console.log(fn(50))
console.log(arr)
方法二、
使用for循环
var user = prompt("请输入数列的长度,需大于2")
var arr = [1, 1]
for (let i = 0; i < user - 2; i++) {
arr.push(arr[arr.length - 1] + arr[arr.length - 2])
}
console.log(arr);