Wednesday 29 November 2017

Java Program to add two large numbers using Linked List


Code:

import java.util.*;

public class AddLargeNumbersUsingLinkedLists
{
    public static void main(String[] args)
    {    
        Scanner scan = new Scanner(System.in);
        /* Create Linked Lists */
        LinkedList num1 = new LinkedList();
        LinkedList num2 = new LinkedList();
        LinkedList ans = new 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:


















100+ Best Home Decoration Ideas For Christmas Day 2019 To Make Home Beautiful

Best gifts for Christmas Day | Greeting cards for Christmas Day | Gift your children a new gift on Christmas day This Christmas d...