递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。
示例1:
输入:A = 1, B = 10
输出:10
示例2:
输入:A = 3, B = 4
输出:12
链接:🔗
本题有一点比较有意思的地方:
由于使用递归实现乘法,那么递归层次越少当然越少,因此递归前,应当先判断下A和B的大小
class Solution {
public:
int deep(int A, int B){
if (B == 0) return 0;
return deep(A, B - 1) + A;
}
int multiply(int A, int B) {
if (A > B)
return deep(A, B);
else return deep(B, A);
}
};