-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAddTwoNumbersAsAString(Without wrapper class))
More file actions
38 lines (37 loc) · 1.42 KB
/
AddTwoNumbersAsAString(Without wrapper class))
File metadata and controls
38 lines (37 loc) · 1.42 KB
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
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args) {
String s1 = "129898";
String s2 = "8645";
StringBuilder sb1 = new StringBuilder(s1);
StringBuilder sb2 = new StringBuilder(s2);
sb1 = sb1.reverse();
sb2 = sb2.reverse();
int carry = 0;
StringBuilder res = new StringBuilder();
int i = 0;
for(i=0;i<sb1.length() && i<sb2.length();i++){
int dig1 = (int)sb1.charAt(i) - 48; //System.out.println(i+" :dig1 "+dig1);
int dig2 = (int)sb2.charAt(i) - 48; //System.out.println(i+" :dig2 "+dig2);
int sumOfDigs = dig1 + dig2 + carry; //System.out.println(i+" :sumOfDigs "+sumOfDigs);
int resDig = sumOfDigs%10; //System.out.println(i+" :resDig "+resDig);
carry = sumOfDigs/10; //System.out.println(i+" :carry "+carry);
res.append(resDig);
}
while(i<sb1.length()){ // if len of sb1 is greater it will come in this loop
int dig1 = (int)sb1.charAt(i) - 48 + carry;
carry = 0;
res.append(dig1);
i++;
}
while(i<sb2.length()){ // if len of sb2 is greater it will come in this loop
int dig2 = (int)sb2.charAt(i) - 48 + carry;
carry = 0;
res.append(dig2);
i++;
}
System.out.println(res.append(carry).reverse());
}
}