BigInt居然不能识别,可惜了~
const a = BigInt(readline()); const b = BigInt(readline()); console.log(a + b + '');
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let list = [];
rl.on('line', function (line) {
list.push(line);
if(list.length==2){
let a = list[0];
let b = list[1];
//可以用进位式大数加法,也可以用BigInt
console.log((BigInt(a)+BigInt(b))+'');
list = [];
}
});
const readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})
const inputArr = []
rl.on('line', function(input) {
inputArr.push(input)
})
// 大数求和
function bigNumerSum(numA, numB) {
// 不做这个过不了所有测试用例
numA = numA.trim()
numB = numB.trim()
// 找出更长的长度
let maxLen = numA.length > numB.length ? numA.length : numB.length
// 两个数达到相同位数 前面补0
numA = numA.padStart(maxLen, '0')
numB = numB.padStart(maxLen, '0')
let carry = 0 // 进位
let sum = '' // 和
for(let i=maxLen-1; i>=0; i--) { // 从最后一位开始
let s = Number(numA[i]) + Number(numB[i])
s += carry
carry = s < 10 ? 0 : 1
sum = (s%10)+sum
}
return carry === 0 ? sum : '1'+sum
}
rl.on('close', function() {
const res = []
for(let i=0; i<inputArr.length;) {
let numA = inputArr[i], numB = inputArr[i+1]
let sum = bigNumerSum(numA, numB)
res.push(sum)
i+=2
}
res.forEach(s => console.log(s))
process.exit(0)
}) function func (num1, num2) {
let len1 = num1.length
let len2 = num2.length
let min = ""
let max = ""
if (num1.length >= num2.length) {
max = num1
min = num2
} else {
max = num2
min = num1
}
let flag = false
let res = ""
let dig1 = ""
let dig2 = ""
for (let i = 1; i <= min.length; i++) {
dig1 = num1.substr(len1 - i, 1)
dig2 = num2.substr(len2 - i, 1)
let tmp = parseInt(dig1) + parseInt(dig2)
// console.log(dig1, dig2)
if (flag) {
tmp += 1
}
if (tmp >= 10) {
flag = true
tmp = String(tmp).substr(1)
} else {
flag = false
tmp = String(tmp)
}
// console.log(tmp)
res = `${tmp}${res}`
}
if (max.length !== min.length) {
let pre = parseInt(max.substr(0, max.length - min.length))
if (flag) {
pre += 1
}
return `${String(pre)}${res}`
} else {
if (flag) {
return `1${res}`
} else {
return res
}
}
} var readline=require("readline");
var r1=readline.createInterface({
input:process.stdin,
output:process.stdout
});
var data=[];
r1.on('line',function(line){
line=line.trim();
data.push(line);
if(data.length===2){
var tmp=Math.max(data[0].length,data[1].length);
var arr1=data[0].split('').reverse();
var arr2=data[1].split("").reverse();
var result=new Array(tmp+1);
var sign=0;
var temp;
for(var i=0;i<result.length;i++){
if(!arr1[i]){arr1[i]=0;}
if(!arr2[i]){arr2[i]=0;}
temp=(arr1[i]-0)+(arr2[i]-0)+sign;
if(temp>=10){sign=1; result[i]=temp%10;}
else{sign=0; result[i]=temp;}
}
if(result[tmp]==0) result.pop();
result=result.reverse().join('');
console.log(result);
data=[];
}
})
js的确可以算很大很大的数,然而结果却是科学记数法,并且进行了省略,弄了半天也没有办法禁止使用科学计数法,索性就自己写了一个,用的是数组,还是挺简单的。