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)
}

你可能感兴趣的:(JS:两数字字符串相乘)