Leetcode面试题 08.05. 递归乘法

Every day a leetcode

题目来源:面试题 08.05. 递归乘法

解法1:for循环

for循环A次,每次加B。

代码:

int multiply(int A, int B){
    int ans=0;
    for(int i=0;i<A;i++) ans+=B;
    return ans;
}

结果:
Leetcode面试题 08.05. 递归乘法_第1张图片

解法2:递归

代码:

int multiply(int A, int B){
    if(B>1) return A+multiply(A,B-1);
    else return A;
}

结果:
Leetcode面试题 08.05. 递归乘法_第2张图片

解法3:优化递归

代码:

int multiply(int A, int B){
    if(A==0 || B==0) return 0;
    if(A>B) return A+multiply(A,B-1);
    else return B+multiply(A-1,B);
}

结果:
Leetcode面试题 08.05. 递归乘法_第3张图片

你可能感兴趣的:(Every,day,a,leetcode,leetcode,算法,职场和发展)