gpt4 book ai didi

javascript - 为什么我需要在 'stack' 之后添加 [exponent - 1] ?

转载 作者:行者123 更新时间:2023-11-28 20:32:55 24 4
gpt4 key购买 nike

我目前正在研究 Javascript 中的递归函数,大部分情况下我了解什么是递归以及如何使用它,但我有一个问题:为什么我需要“为什么我需要添加 [exponent - 1” ] 在‘堆栈’之后?”这是代码:

var stack = [];

// Here is our recursive function
function power(base, exponent) {
// Base case
if ( exponent === 0 ) {
return 1;
}
// Recursive case
else {
//Why do I need [exponent - 1]?
**stack[exponent - 1] = base * power(base, exponent - 1)**;
return stack[exponent - 1];
}
}

最佳答案

这是因为

power(any_number, 0) = 1, (constant)

stack[0] = power(any_number, 0) = 1,
stack[1] = any_number * stack[0],
stack[2] = any_number * stack[1],
stack[3] = any_number * stack[2],
...

这就是 power() 函数在数学中的工作原理。数到零的幂 (n^0) = 1,接下来,每个幂都是之前的幂再乘以基数一次。

你明白吗?

编辑

回答你的评论,你几乎从你写的内容中理解了。

就像这样:

n^0 = 1
n^1 = n * n^0 = n * 1
n^2 = n * n^1 = n * n * 1
n^3 = n * n^2 = n * n * n * 1
n^4 = n * n^3 = n * n * n * n * 1
...

每个下一个都是n * 前一个(//递归情况)

但 n^0 始终等于 1 并结束此函数。 (//基本情况)

现在更清楚了吗?

关于javascript - 为什么我需要在 'stack' 之后添加 [exponent - 1] ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15983027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com