Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a structured program using basic java programming that can accept two inte

ID: 3855538 • Letter: W

Question

Write a structured program using basic java programming

that can accept two integer numbers up to 40 digits and perform the followings:

1.         Add the two numbers and display the result.

2.         The result number should be separated by commas.
             For example

                        If inputs are:

Number1:   236598745632

                                    Number2:   2453254365546764765

The output should be:

                                                    236,598,745,632 +

2,453,254,365,546,764,765

             -------------------------------------

2,453,254,602,145,510,397

           

Notes:

You must read the two input numbers as string objects, then verify if the input is correct (i.e. all digit characters).

You may assume that your program only works for positive integer numbers.

You cannot use any of BigDecimal / BigInteger / double / long / int types for your calculations.

Explanation / Answer

Java program:

public class Addition {

   public static void main(String[] args) {

       String number1="236598745632";

       String number2="2453254365546764765";

       //Size of number 1

       int number1Size=(number1.length()+(number1.length()/3));

       int number1ArrayLen=(number1Size%2==0)?number1Size-1:number1Size;

       //Size of number 2

       int number2Size=(number2.length()+(number2.length()/3));

       int number2ArrayLen=(number2Size%2==0)?number2Size-1:number2Size;

      

       char []number1Array=new char[number1ArrayLen];

       char []number2Array=new char[number2ArrayLen];

       char []output=new char[number1ArrayLen>number2ArrayLen?number1ArrayLen+1:number2ArrayLen+1];

       System.out.println("Number 1: "+number1);

       System.out.println("Number 2: "+number2);

      

       //populate value

       for (int i = number1Array.length-1,j=number1.length()-1,index=1; i >=0; i--,j--,index++) {

           if(index%4==0){

               number1Array[i]=',';

               j++;

           }else{

               number1Array[i]=number1.charAt(j);

           }

       }

       System.out.println("The output should be:");

       System.out.print(number1Array);

       System.out.println(" +");

       //populate value

       for (int i = number2Array.length-1,j=number2.length()-1,index=1; i >=0; i--,j--,index++) {

           if(index%4==0){

               number2Array[i]=',';

               j++;

           }else{

               number2Array[i]=number2.charAt(j);

           }

       }

       System.out.println(number2Array);

       System.out.println("----------------------------------");

       int carry=0;

       for (int num1 = number1Array.length-1,num2 = number2Array.length-1,out=output.length-1,index=1; out >=0; num1--,num2--,out--,index++) {

           if(index%4==0){

               output[out]=',';

           }else{

               int result=(num1>=0?(Integer.parseInt(String.valueOf(number1Array[num1]))):0)+(num2>=0?(Integer.parseInt(String.valueOf(number2Array[num2]))):0)+ carry;

               carry=0;

               if(String.valueOf(result).length()==2){

                   output[out]=String.valueOf(result).charAt(1);

                   carry=Integer.parseInt(String.valueOf(String.valueOf(result).charAt(0)));

               }else{

                   if(!(out==0 && result==0)){

                       output[out]=String.valueOf(result).charAt(0);

                   }

               }

               }

           }

       System.out.println(output);

       }

}

OUTPUT:

Number 1: 236598745632

Number 2: 2453254365546764765

The output should be:

236,598,745,632 +

2,453,254,365,546,764,765

----------------------------------

2,453,254,602,145,510,397

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote