一.for实现递归
function number(x, n) {
let result = 1
for (var i = 0; i < n; i++) {
result *=x
}
return result
}
console.log(number(2,3))
//结果8
二. 递归实现方式(必须有一个结束条件)
// 缺点: 性能是比较低(占用过多的栈内存)
// 优点: 写出来的代码非常简洁
function number2(x, n) {
if (n === 1) return x
return x * number2(x,n - 1)
}
console.log(number2(2, 3))
// 结果8
代码解析:
这是因为在数学上:xn = x * xn-1 (5的2次方=5*5的2-1次方)
那么对于函数的调用,我们也可以进行划分:
递归必需要有一个结束的条件,(递归是自己调用自己),就是当n已经等于1的时候就不需要拆分了;