递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。
- 示例1:
输入:A = 1, B = 10
输出:10
- 示例2:
输入:A = 3, B = 4
输出:12
- 提示:
保证乘法范围不会溢出
class Solution {
public:
int multiply(int A, int B) {
if (1 == A) {
return B;
}else if (2 == A) {
return B<<1;
}else {
int temp = A;
if (A == (temp>>1)<<1) {
return multiply(A>>1,B<<1);
}else {
return B + multiply(A>>1,B<<1);
}
}
}
};