递归乘法
描述
递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。
一 、带返回参数的递归
class Solution { public int multiply(int A, int B) { return to_multiply(A, B); } private int to_multiply(int a, int b) { int sum = 0; //terminate if (b <= 0) { return 0; } //process login sum += a; //drill into return sum + to_multiply(a, b - 1); //revert } }
二、 不带返回参数的递归
class SolutionMultiply {
private static int C;
public int multiply(int A, int B) {
to_multiply1(A, B, 0);
return C;
}
private void to_multiply1(int a, int b, int res) {
//terminate
if (b <= 0) {
C=res;
return;
}
res += a;
//drill into
to_multiply1(a, b - 1, res);
//revert
}
}