JS:两数字字符串相乘

题目:给定两个数字(0-9)字符串(长度不限)求它们的乘积。

function multiply(sum1, sum2) {
   /**将两个字符串拆为数组并反转,生成结果数组并初始化为0**/
    let s1 = sum1.split('').reverse()
    let s2 = sum2.split('').reverse()
    let r = new Array(s1.length + s2.length).fill(0)

    /**相乘**/
    s1.forEach((m, i) => {
        s2.forEach((n, j) => {
            let k = i + j
            let t = r[k] + m * n
            r[k] = t % 10
            r[k + 1] += Math.floor(t / 10)
        })
    })

    /**去掉结果数组最开始的0**/
    r = r.reverse()
    let k = 0
    while (r[k] === 0 && k <= r.length - 2) {
        k++
    }
    return r.join('').slice(k)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值