求和:11111111111111111111111+9999999999999999999999999
方法一:
function add(num1, num2) {
num1+=''
num2+=''
if (num1.length > num2.length) {
num2 = num2.padStart(num1.lengthh + 1, '0')
num1 = num1.padStart(num1.lengthh + 1, '0')
} else {
num1 = num1.padStart(num2.length + 1, '0')
num2 = num2.padStart(num2.length + 1, '0')
}
var bar = 0
var sum = ''
var s = 0
for (let i = num1.length - 1
bar = parseInt(num1[i]) + parseInt(num2[i]) + s
if (bar > 9) {
s = 1
bar = bar % 10
sum = bar + sum
} else {
sum = bar + sum
s = 0
}
}
if (sum[0] == '0') {
return sum.slice(1)
} else {
return sum
}
}
var aaa = add(11111111111111111111111,9999999999999999999999999)
console.log(aaa)
方法二:
function add(str1, str2) {
if (Number(str1) > Number(str2)) {
var len = str1
} else {
var len = str2
}
var len1 = str1.length
var len2 = str2.length
var temp = 0
var total = []
for (let i = 0
temp += Number(str1.charAt(len1 - i - 1)) + Number(str2.charAt(len2 - i - 1))
if (temp > 9) {
// 如果两数相加大于9,则把余数放进total
// temp=1 跟下一对相加
total.unshift(temp % 10)
temp = 1
} else {
// 如果两数相加小于10,则把余数直接放进total
total.unshift(temp)
temp = 0
}
}
total = total.join("")
return total
}
document.write(add(
"11111111111111111111111",
"9999999999999999999999999"
))