题解 | #高精度整数加法#

高精度整数加法

https://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
let lines = []
void async function () {
    // Write your code here
    while(line = await readline()){
        lines.push(line)
        if(lines.length == 2){
           console.log(addTwoString(lines[0],lines[1])) 
        }
    }
}()

function addTwoString(str1,str2){
    //比较长短,短的头部补0
    let maxLength = 0
    let longArr = []
    let shortArr = []
    if(str1.length > str2.length){
        maxLength = str1.length
        longArr = str1.split('')
        for(let i=0;i<(maxLength-str2.length);i++){
            shortArr.push(0)
        }
        for(let i=0;i<str2.length;i++){
            shortArr.push(str2[i])
        }
    }else{
        maxLength = str2.length
        longArr = str2.split('')
        for(let i=0;i<(maxLength-str1.length);i++){
            shortArr.push(0)
        }
        for(let i=0;i<str1.length;i++){
            shortArr.push(str1[i])
        }
    }

    let addNum = 0
    let res = ''
    for(let i=maxLength-1 ;i>=0;i--){
       let tmp = (parseInt(shortArr[i])+parseInt(longArr[i])+ addNum )%10 
       //console.log('i='+i+'addNum='+addNum+'tmp='+tmp)
       // addNum = 0
        if(parseInt(shortArr[i])+parseInt(longArr[i])+ addNum  >= 10){
            addNum = 1
        }else{
            addNum = 0
        }
        res = res + tmp
        
    }
    if(addNum == 1){
            res = res + addNum
        }
    let realRes = ''
    for(let i=res.length-1;i>=0;i--){
        realRes = realRes + res[i]
    }
    return realRes
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 13:05
点赞 评论 收藏
分享
不要停下啊:大二打开牛客,你有机会开卷了,卷起来,去找课程学习,在牛客上看看大家面试笔试都需要会什么,岗位有什么需求就去学什么,努力的人就一定会有收获,这句话从来都经得起考验,像我现在大三了啥也不会,被迫强行考研,炼狱难度开局,啥也不会,找工作没希望了,考研有丝丝机会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务