题解 | #高精度整数加法#
高精度整数加法
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 }