JS 两个大数相加

到时间了
不知道能不能100%通过
郁闷
不过还好写完了
思路就是先逆转,从小位开始逐位相加,和大于10时在前一位占1

function add( a ,  b ) {
    // write code here
    if(parseInt(a).toString().length !== a.length || parseInt(b).toString().length !== b.length)
        return 'NaN'
    const maxLength = a.length >= b.length ? a.length : b.length;
    const atest = a.split('').reverse();
    const btest = b.split('').reverse();
    var result = new Array(maxLength).fill(undefined);
    for(let i = 0; i < maxLength; i++) {
        var anum = typeof atest[i] !== undefined ? 0 : parseInt(atest[i]);
        var bnum = typeof btest[i] !== undefined ? 0 : parseInt(btest[i]);
        if(anum + bnum > 10) {
            console.log(anum + bnum)
            result[i + 1] = 1;
            result[i] = result[i] + anum + bnum - 10;
        } else {
            result[i] = anum + bnum;
        }
    }
    var str = result.reverse().join('')
    
    return str;
}

你可能感兴趣的:(JS 两个大数相加)