We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 1b89b4c commit 49b1979Copy full SHA for 49b1979
src/number/大数相加.js
@@ -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