递归函数

kac*_*ous 7 c recursion

给定以下递归函数:

// Pre-condition: y is non-negative.
int mysterious(int x, int y) {
    if (y == 0) return x;
    return 2*mysterious(x, y-1);
}
Run Code Online (Sandbox Code Playgroud)

什么是神秘的回归价值(3,2)?

这是我的调用堆栈:

return 2*mysterious(3, 2-1) => 2*3 => 6, 2*1 => mysterious(6,2)
return 2*mysterious(6, 2-1) => 6*2 => 12, 2*2 => mysterious(12, 2)
Run Code Online (Sandbox Code Playgroud)

但似乎y永远不会达到0.我做错了什么?

sje*_*397 8

mysterious(3, 2)

= 2 * mysterious(3, 1)
= 2 * 2 * mysterious(3, 0)
= 2 * 2 * 3
= 12