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

(Huge Integer Class) Create a class HugeInteger which uses a 40-element array of

ID: 3557274 • Letter: #

Question

(Huge Integer Class) Create a class HugeInteger which uses a 40-element array of digits to store integers as large as 40 digits each. Provide methods parse, toString, add and subtract. Method parse should receive a String, extract each digit using method charAt and place the integer equivalent of each digit into the integer array. For comparing HugeInteger objects, provide the following methods: isEqualTo, isNotEqualTo, isGreaterThan, isLessThan, isGreaterThanOrEqualTo and isLessThanOrEqualTo. Each of these is a predicate method that returns true if the relationship holds between the two HugeInteger objects and returns false if the relationship does not hold. Provide a predicate method isZero. If you feel ambitious, also provide methods multiply, divide and remainder. [Note: Primitive boolean values can be output as the word true or the word false with format specifier %b.]

public class HugeInteger

{

private int[] intArray;

private int numDigits; // stores the number of digits in intArray

public HugeInteger(String s)

{

    intArray = new int[40];

    numDigits = 0;

    // call parse(s)

}

public HugeInteger( )

{

    intArray = new int[40];

    numDigits = 0;

   

}

public void parse(String s)

{

     // Add each digit to the arrays

     // update numDigits

}

public static HugeInteger add(HugeInteger hugeInt1, HugeInteger hugeInt2)

{

     // Create hugeInt3

     // Loop

     //    Add digits from hugeInt1 and hugeInt2,

     //    Store in corresponding hugeInt3

     // End

     //

     // return hugeInt3    

}

public static HugeInteger subtract(HugeInteger hugeInt1, HugeInteger hugeInt2)

{

     // Create hugeInt3

     // Loop

     //    Subtract hugeInt2 digit from hugeInt1,

     //    Store in corresponding hugeInt3

     // End

     //

     // return hugeInt3    

}

public static boolean isEqualTo(HugeInteger hugeInt1, HugeInteger hugeInt2)

{

    // return true if the value represented by

    // elements of hugeInt1.intArray is equal to

    // value represented by elements of hughInt2.intArray

}

public static boolean isNotEqualTo(HugeInteger hugeInt1, HugeInteger hugeInt2)

{

    // return true if the value represented by

    // elements of hugeInt1.intArray is not equal to

    // value represented by elements of hughInt2.intArray

}

public static boolean isGreaterThan(HugeInteger hugeInt1, HugeInteger hugeInt2)

{

    // return true if the value represented by

    // elements of hugeInt1.intArray is greater than

    // value represented by elements of hughInt2.intArray

}

public static boolean isLessThan(HugeInteger hugeInt1, HugeInteger hugeInt2)

{

    // return true if the value represented by

    // elements of hugeInt1.intArray is less than

    // value represented by elements of hughInt2.intArray

}

public static boolean isGreaterThanOrEqualTo(HugeInteger hugeInt1, HugeInteger hugeInt2)

{

    // return true if the value represented by

    // elements of hugeInt1.intArray is greater than or equal to

    // value represented by elements of hughInt2.intArray

}

public static boolean isZero(HugeInteger hugeInt1 )

{

    // return true if the value represented by

    // elements of hugeInt1.intArray is 0

}

public String toString( )

{

     // return string representation of this object

}

}

Explanation / Answer

HugueInteger add(HugeInteger toAdd) { 02       // to store result 03       HugeInteger result = new HugeInteger(); 04       // init reminder 05       int reminder = 0; 06 07       // add backward 08       for(int i = 39; i 9) { 12                result.digit[i] %= 10; 13                reminder = 1; 14             } 15             else { 16                 reminder = 0; 17             } 18       } 19       return result; 20 }