javascript - (非常简单的递归)我错过了什么?

标签 javascript recursion

<分区>

我看不出我在这个递归调用中遗漏了什么......

var power = function(b, e)
{
    if (e===0)
    {
       return 1;
    }
    else
    {
       return b*power(b, e-1);
    }
};

第一个 if 语句用于捕获数字的零次方(它们始终等于 1)。但这也是基本情况,所以当 e(指数)达到 0 时,函数退出并给我留下正确答案。

这如何返回正确的数字而不是数字 1?每次,e 都降到 0,但它返回正确答案而不是 1。抱歉我是菜鸟,但我很困惑...

最佳答案

您有一个递归 函数,当它“返回 1”时,它会返回栈帧并将 1 乘以它堆叠起来的所有其他 b 变量。 1*b*b*b...等

1*anything 是恒等函数。它返回自身,而不是 1。

关于javascript - (非常简单的递归)我错过了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11129209/

相关文章:

javascript - Stopping ,对象中的计时器函数

javascript - Windows Snap Assist 找不到我的 Electron 应用程序

javascript - 如何从其他站点下载mp3文件

javascript 计数器与 if else

c++ - 递归函数的时间复杂度,其中递归减少了大小

java - Project Euler 12,Java解决方案尝试,递归错误?

algorithm - 带有 K 钉的汉诺塔

javascript - 许多 setIntervals 与每秒许多选择

java - 递归搜索错误

python - 选择键来跟踪递归调用中已经运行的函数