面试题 08.05. 递归乘法
作者:互联网
递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。
示例1:
输入:A = 1, B = 10
输出:10
示例2:
输入:A = 3, B = 4
输出:12
代码
class Solution { public: int multiply(int A, int B) { if (A==1) return B; if (B==1) return A; if (A>B) { return A+multiply(A,B-1); }else { return B+multiply(A-1,B); } } };
class Solution { public: int multiply(int A, int B) { if (A > B) return multiply(B, A); if (A == 0) return 0; return B + multiply(A - 1, B); } };
递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。
示例1:
输入:A = 1, B = 10 输出:10示例2:
输入:A = 3, B = 4 输出:12
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/recursive-mulitply-lcci著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
标签:10,面试题,return,08.05,递归,示例,int,multiply 来源: https://www.cnblogs.com/BlairGrowing/p/13564411.html