给定以下递归函数:
// Pre-condition: y is non-negative.
int mysterious(int x, int y) {
if (y == 0) return x;
return 2*mysterious(x, y-1);
}
神秘(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)
但看起来y永远不会达到0。我做错什么了?
最佳答案
神秘的(3,2)
=2*神秘(3,1)
=2*2*神秘(3,0)
=2*2*3个
=12个