这是将 a
和 b
相乘的函数:
0 int mult(int a, int b){
1 if(a==0){
2 return 0;
3 } else{
4 a=a-1;
5 int c = mult(a,b);
6 int d = b + c;
7 return d;
8 }
9 }
我正在使用参数 2
和 3
:结果是 6
,但为什么呢?
在第 5 行中,我将在第二个 a=a-1;
之后得到 0
然后 d
是 3
然后 返回 3
而不是 6
。我是愚蠢还是它也让你感到困惑?
最佳答案
你对递归感到困惑。
mult(2, 3):
calls mult(1, 3)
mult(1, 3):
calls mult(0, 3)
mult(0, 3):
returns 0
d = 3 + 0
returns 3
d = 3 + 3
returns 6
关于java - 整数乘法的递归定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13085221/