面试题 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;
    }
}
posted @ 2022-06-04 22:06  YoungerWb  阅读(61)  评论(0编辑  收藏  举报