Leetcode刷题

Leetcode刷题,第1张

一、题目

递归乘法。

写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。

可以使用 加号、减号、位移,但要吝啬一些。

二、示例

 输入: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
};

五、总结

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/662434.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-18
下一篇 2022-04-18

发表评论

登录后才能评论

评论列表(0条)

保存