Code:
import java.util.*;
public class AddLargeNumbersUsingLinkedLists
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
/* Create Linked Lists */
LinkedList
LinkedList
LinkedList
/* Accept numbers */
System.out.println("Adding Large Numbers Using Linked Lists Test\n");
System.out.println("Enter number 1");
String s1 = scan.next();
System.out.println("Enter number 2");
String s2 = scan.next();
/* Store digits in lists */
int l1 = s1.length(), l2 = s2.length();
for (int i = l1 - 1; i >= 0; i--)
num1.add(s1.charAt(i) - '0');
for (int i = l2 - 1; i >= 0; i--)
num2.add(s2.charAt(i) - '0');
/* Adding digits and storing in ans list */
int len = l1 > l2 ? l1 : l2;
int carry = 0;
for (int i = 0; i < len; i++)
{
int d1 = 0, d2 = 0;
try {
d1 = num1.get(i);
}
catch(Exception e){}
try {
d2 = num2.get(i);
}
catch(Exception e){}
int x = d1 + d2 + carry;
ans.add(x % 10);
carry = x / 10;
}
/* Adding carry */
while (carry != 0)
{
ans.add(carry % 10);
carry /= 10;
}
/* Printing ans list */
System.out.print("\nSum = ");
for (int i = ans.size() - 1; i >= 0; i--)
System.out.print(ans.get(i));
System.out.println();
}
}
Output:
Adding Large Numbers Using Linked Lists Test
Enter number 1
47573267684781773734658371972483657818736465
Enter number 2
1287486758723589773489812734285684586837498748865872358
Sum = 1287486758771163041174594508020342958809982406684608823
Adding Large Numbers Using Linked Lists Test
Enter number 1
54723648627465378475862384728763573645862736573563826875476567826384627357235724
87246375782638746723578634757823647236757658726345273864725762378623572365657236
573467236762365726846574658736453476582368991237
Enter number 2
23472356764817284635723642478356785728497172547386528348732572836483657582375823
65726481943756235876458237483764572836562387567823657823476417832685638756723658
491819284782843637856284719784
Sum = 54723648627465378499334741493580858281586379051920612603973740373771155705
96829770894741540876329089305116701579883113215896210109846701288149946447230189
133654406152875519089385338393943519297114438653711021
Adding Large Numbers Using Linked Lists Test
Enter number 1
85676347892358776738492384576783294876574923843567754398557493284767549328457543
92847567893284375382918356348293847564892347654839846589238457839382374653489283
75648392384756738298475674839234856743892984567849329123847548329138475489238465
Enter number 2
34637829234856543728928346578434576754894857657849876754838375674839387476574839
38756578438756783938756574839387657584932837567483928435743534567657267367346572
36576572687365347658235826357298347918239102391084345435648274982981029310849376
Sum = 12031417712721532046742073115521787163146978150141763115339586895960693680
50323833160414633204115932167493118768150514982518522232377502498199240703964202
08358561222496507212208595671150119653320466213208695893367455949582331211950480
0087841
More Java Programs: