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