-
Notifications
You must be signed in to change notification settings - Fork 0
/
adding_big_numbers.js
38 lines (37 loc) · 1.18 KB
/
adding_big_numbers.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function add(a, b) {
var arrayA = a.split("");
var arrayB = b.split("");
var newArray = [];
var solution = "";
if(arrayA.length===arrayB.length) {
for(i=0; i<arrayA.length; i++) {
newArray.push(parseInt(arrayA[i]) + parseInt(arrayB[i]));
}
}
else if(arrayA.length>arrayB.length){
for(i=0; i<arrayA.length; i++) {
if(arrayB[(arrayA.length-1)-i] === undefined) {
arrayB[(arrayA.length-1)-i] = 0;
}
newArray.push(parseInt(arrayA[i]) + parseInt(arrayB[(arrayA.length-1)-i]));
}
}
else {
for(i=0; i<arrayB.length; i++) {
if(arrayA[(arrayB.length-1)-i] === undefined) {
arrayA[(arrayB.length-1)-i] = 0;
}
newArray.push(parseInt(arrayB[i]) + parseInt(arrayA[(arrayB.length-1)-i]));
}
}
for(i=newArray.length-1; i>=0; i--) {
if(newArray[i]>9 && i>0) {
newArray[i-1] = Math.floor(newArray[i]/10) + newArray[i-1];
newArray[i] = newArray[i]%10;
}
}
for(i=0; i<newArray.length; i++) {
solution = solution + newArray[i];
}
return solution;
}