一、题目
递归乘法。
写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。
可以使用
加号、减号、位移,但要吝啬一些。
二、示例
输入:A = 1, B = 10
输出:10
输入:A = 3, B = 4
输出:12
三、思路
使用递归,在此之前做一次优化,比较A和B的大小。
四、代码
/**
* @param {number} A
* @param {number} B
* @return {number}
*/
var multiply = function(A, B) {
let total = 0
let big = A > B ? A : B
let small = A > B ? B : A
const rec = (a, b) => {
if(b === 0) {
return
}
total += a
rec(a, b - 1)
}
rec(big, small)
return total
};
五、总结
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)