2
尾遞歸方法多2號尾遞歸方法多2號
public static int Multiply2(int x, int y)
{
return MulTail(x, y, x);
}
public static int MulTail(int x, int y, int result)
{
if (y == 0 || x == 0)
return 0;
if (y == 1)
return result;
return MulTail(x, y - 1, result+x);
}
改變,以適應負數
public static int Multiply2(int x, int y)
{
if ((y < 0 && x > 0) || (x < 0 && y < 0))
{
y = y - y - y;
x = x - x - x;
}
return MulTail(x, y, x);
}
public static int MulTail(int x, int y, int result)
{
if (y == 0 || x == 0)
return 0;
if (y == 1)
return result;
return MulTail(x, y - 1, result+x);
}
我們可以改進嗎? – Learner 2009-07-19 03:11:41
爲什麼任何人在正確的思想中都會使用遞歸來乘以兩個數字? – 2009-07-19 03:15:49