给定两个以字符串形式表示的非负整数num1 和 num2 返回值为num1 * num2的乘积(js实现)

实现一个求乘积的算法,比如输入(‘10‘,‘10‘),返回值为100,主要思路是将传入字符串分隔为数组,双重for循环遍历,先判断个位数,是否需要进位,追加到新数组中,再去进行10进制转换;

function multiplication(s,t){
    if(!s.length || !t.length) return;
    if (s.charAt(0) == 0 || t.charAt(0) == 0) {
        return ‘0‘
    }
    let newS = s.split(‘‘), 
        newT = t.split(‘‘),// 12 [1,2]
        arr = [];
        console.log(newS)
    for(let i = 0; i < newS.length; i++){
        for(let j = 0; j < newT.length; j++){ 
            arr[i + j] ? (arr[i + j] += newS[i] * newT[j]) : (arr[i + j] = newS[i] * newT[j]);
        }
    }
    console.log(arr)
    for (let index = arr.length; index > 0; index--) {
        if (arr[index] > 9) {
            arr[index - 1] += (arr[index] / 10 | 0)
            arr[index] %= 10
        }
    }
    let str = arr.join(‘‘)
    console.log(str)
    return str
}
multiplication(‘10‘,‘10‘) //100

 

给定两个以字符串形式表示的非负整数num1 和 num2 返回值为num1 * num2的乘积(js实现)

上一篇:netty系列之:自定义编码解码器


下一篇:@Jsonview过滤pojo和jackson安全漏洞