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: 3849196 • 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.


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

public class HugeInteger
{
private int[] intArray;
private int numDigits;
public HugeInteger(String s)
{
intArray = new int[40];
numDigits = 0;
parse(s);
}
public HugeInteger( )
{
intArray = new int[40];
numDigits = 0;
}
public void parse(String s)
{
for(int i=0;i<s.Length();i++)
{
char ch=s.charAt(i);
if(Character.isDigit(ch))
{
intArray[i]=ch;
numDigits++;
}
}
}
public static HugeInteger add(HugeInteger hugeInt1, HugeInteger hugeInt2)
{
HugeInteger hugeInt3;
for(int i=0;i<numDigits;i++)
{
hugeInt3.intArray[i]=hugeInt1.intArray[i]+hugeInt2.intArray[i];
}
return hugeInt3;
}
public static HugeInteger subtract(HugeInteger hugeInt1, HugeInteger hugeInt2)
{
HugeInteger hugeInt3;
for(int i=0;i<numDigits;i++)
{
hugeInt3.intArray[i]=hugeInt1.intArray[i]-hugeInt2.intArray[i];
}
return hugeInt3;
}
public static boolean isEqualTo(HugeInteger hugeInt1, HugeInteger hugeInt2)
{
for(int i=0;i<numDigits;i++)
{
if(hugeInt1.intArray[i]==hugeInt2.intArray[i])
{
return true;
}
}
return false;
}
public static boolean isNotEqualTo(HugeInteger hugeInt1, HugeInteger hugeInt2)
{
for(int i=0;i<numDigits;i++)
{
if(hugeInt1.intArray[i]!=hugeInt2.intArray[i])
{
return true;
}
}
return false;
}
public static boolean isGreaterThan(HugeInteger hugeInt1,
HugeInteger hugeInt2)

{
for(int i=0;i<numDigits;i++)
{
if(hugeInt1.intArray[i]>hugeInt2.intArray[i])
{
return true;
}
}
return false;
}
public static boolean isLessThan(HugeInteger hugeInt1, HugeInteger hugeInt2)
{
for(int i=0;i<numDigits;i++)
{
if(hugeInt1.intArray[i]<hugeInt2.intArray[i])
{
return true;
}
}
return false;
}
public static boolean isGreaterThanOrEqualTo(HugeInteger hugeInt1,
HugeInteger hugeInt2)
{
for(int i=0;i<numDigits;i++)
{
if(hugeInt1.intArray[i]>=hugeInt2.intArray[i])
{
return true;
}
}
return false;

}
public static boolean isZero(HugeInteger hugeInt1 )
{
for(int i=0;i<numDigits;i++)
{
if(hugeInt1.intArray[i]==0)
{
return true;
}
}
return false;
}
public String toString()
{
String output="";
output=hugeInt3.toString();
return output;
}

}
Class Tasks
{
public static void main(String args[])
{
HugeInteger obj=new HugeInteger("hi 547 this is 557");
}
}