use*_*643 1 c# recursion multiplication
有人可以解释一下这个递归函数是怎么做的吗?我很难理解如何使用+来增加数字
static int Multiply(int x, int y)
{
if (y == 1)
{
return x;
}
else
{
return x + Multiply(x, y - 1);
}
}
Run Code Online (Sandbox Code Playgroud)
记住你的基本算术.
X * 2 = X + X
X * 3 = X + X + X
Run Code Online (Sandbox Code Playgroud)
等等
所以我可以分解X * 3为
X * 3 = X + (X * 2)
Run Code Online (Sandbox Code Playgroud)
所以在你的功能中:
X * Y = X + (X * (Y-1))
Run Code Online (Sandbox Code Playgroud)
因此
X * Y = Multiply(X, Y) = (X + Multiply(X, Y -1))
Run Code Online (Sandbox Code Playgroud)
这本质上就是递归.