面试题 08.05. 递归乘法-----递归
题目表述
递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。
示例:
示例1:
输入:A = 1, B = 10
输出:10
递归
- 不允许使用乘法计算,但是可以使用加法
- 根据数学公式,a*b = a个b相加
- 递归的相加a,确定好退出条件即可
class Solution {
public int multiply(int A, int B) {
if(A == 0 || B == 0) return 0;
if(A == 1) return B;
if(B == 1) return A;
return multiply(A, B-1) + A;
}
}