Skip to content

Commit 49b1979

Browse files
add: 大数相加
1 parent 1b89b4c commit 49b1979

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

src/number/大数相加.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// 也是小米的一面面试题
2+
// JS在存放整数的时候有一个安全范围的,一旦数字超过这个范围便会损失精度
3+
let a = "9007199254740991"
4+
let b = "1234567899999999999"
5+
6+
function add(a, b) {
7+
let maxLength = Math.max(a.length, b.length)
8+
a = a.padStart(maxLength, '0')
9+
b = b.padStart(maxLength, '0')
10+
let t = 0, f = 0, sum = ""
11+
for(let i = maxLength - 1; i >= 0; i--) {
12+
t = parseInt(a[i]) + parseInt(b[i]) + f
13+
f = Math.floor(t/10)
14+
sum = t % 10 + sum
15+
}
16+
if(f == 1) sum = '1' + sum
17+
return sum
18+
}
19+
20+
console.log(add(a, b)) // 1243575099254740990

0 commit comments

Comments
 (0)