Skip to content

Instantly share code, notes, and snippets.

@qzm
Created April 27, 2018 02:54
Show Gist options
  • Save qzm/e9b7a10cbc8a288097f7eb452e740e7c to your computer and use it in GitHub Desktop.
Save qzm/e9b7a10cbc8a288097f7eb452e740e7c to your computer and use it in GitHub Desktop.
// 大数相加
// 大数相加
function add(a, b) {
var carry = 0;
var result = [];
var sum = 0;
var minLength = Math.min(a.length, b.length);
var maxLength = Math.max(a.length, b.length);
var aArrRe = a.split("").reverse();
var bArrRe = b.split("").reverse();
var maxArrRe = aArrRe.length > bArrRe.length ? aArrRe : bArrRe;
for (var index = 0; index < maxLength; index++) {
if (index < minLength) {
sum = parseInt(aArrRe[index]) + parseInt(bArrRe[index]) + carry;
} else {
sum = parseInt(maxArrRe[index]) + carry;
}
carry = parseInt(sum / 10);
result.unshift(sum % 10);
}
carry && result.unshift(carry);
return result.join("");
}
console.log(add("9999999", "1"));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment