Question: Here is my Code: package HugeIntTest; class HugeInteger { private final int DIGITS = 40; private int[] integer; private boolean positive; public HugeInteger() { integer

Here is my Code:

package HugeIntTest;

class HugeInteger {

private final int DIGITS = 40;

private int[] integer;

private boolean positive;

public HugeInteger()

{

integer = new int[ DIGITS ];

positive = true;

}

public void input( String inputString )

{

char[] integerChar = inputString.toCharArray();

if ( integerChar[ 0 ] == '-' )

positive = false;

if ( positive )

integer[ DIGITS - integerChar.length ] =

( int )integerChar[ 0 ] - ( int )'0';

for ( int i = 1; i < integerChar.length; i++ )

integer[ DIGITS - integerChar.length + i ] =

( int )integerChar[ i ] - ( int )'0';

}

public HugeInteger add( HugeInteger addValue )

{

HugeInteger temp = new HugeInteger();

if ( ( positive && addValue.positive ) ||

!( positive || addValue.positive ) )

temp = addPositives( addValue );

else if ( positive && ( !addValue.positive ) ) {

addValue.positive = true;

if ( isGreatThan( addValue ) )

temp = subtractPositives( addValue );

else {

temp = addValue.subtractPositives( this );

temp.positive = false;

}

addValue.positive = false;

}

else if ( !positive && addValue.positive ) {

addValue.positive = false;

if ( isGreatThan( addValue ) )

temp = addValue.subtractPositives( this );

else {

temp = subtractPositives( addValue );

temp.positive = false;

}

addValue.positive = true;

}

return temp;

}

public HugeInteger addPositives( HugeInteger addValue )

{

HugeInteger temp = new HugeInteger();

int carry = 0;

for ( int i = 39; i >= 0; i-- ) {

temp.integer[ i ] =

integer[ i ] + addValue.integer[ i ] + carry;

if ( temp.integer[ i ] > 9 ) {

temp.integer[ i ] %= 10;

carry = 1;

}

else

carry = 0;

}

if ( !positive )

temp.positive = false;

return temp;

}

public HugeInteger subtract( HugeInteger subtractValue )

{

HugeInteger temp = new HugeInteger();

if ( positive && ( !subtractValue.positive ) )

temp = addPositives( subtractValue );

else if ( !positive && subtractValue.positive ) {

temp = addPositives( subtractValue );

}

if ( positive && subtractValue.positive )

temp = subtractPositives( subtractValue );

if ( !( positive || subtractValue.positive ) )

temp = subtractValue.subtractPositives( this );

return temp;

}

public HugeInteger subtractPositives( HugeInteger subtractValue )

{

int borrow = 0;

HugeInteger temp = new HugeInteger();

for ( int i = 39; i >= 0; i-- ) {

if ( integer[i] < subtractValue.integer[ i ] ){

temp.integer[ i ] = ( integer[ i ] + 10 ) -

subtractValue.integer[ i ] - borrow;

borrow = 1;

}

else {

temp.integer[ i ] =

integer[ i ] - subtractValue.integer[ i ] - borrow;

borrow = 0;

}

}

return temp;

}

public int findFirstNonZeroPosition()

{

int position = 39;

for ( int i = 0; i < DIGITS; i++ ) {

if ( integer[ i ] > 0 ) {

position = i;

break;

}

}

return position;

}

public String toHugeIntegerString()

{

String sign = " ", output = " ";

if ( !positive )

sign = "-";

for ( int i = findFirstNonZeroPosition(); i < DIGITS; i++ )

output += integer[ i ];

return sign + output;

}

public boolean isEqualTo( HugeInteger compareValue )

{

for ( int i = 0; i < DIGITS; i++ ) {

if ( integer[ i ] != compareValue.integer[ i ] )

return false;

}

if ( ( positive && compareValue.positive ) ||

!( positive || compareValue.positive ) )

return true;

else

return false;

}

public boolean isNotEqualTo( HugeInteger compareValue )

{

return !isEqualTo( compareValue );

}

public boolean isGreatThan( HugeInteger compareValue )

{

if ( positive && ( !compareValue.positive ) )

return true;

else if ( !positive && compareValue.positive )

return false;

else {

if ( findFirstNonZeroPosition() >

compareValue.findFirstNonZeroPosition() ) {

if ( positive )

return false;

else

return true;

}

else if ( findFirstNonZeroPosition() <

compareValue.findFirstNonZeroPosition() ) {

if ( positive )

return true;

else

return false;

}

else {

for ( int i = 0; i < DIGITS; i++ ) {

if ( integer[ i ] > compareValue.integer[ i ] )

if ( positive )

return true;

else

return false;

}

if ( positive )

return false;

else

return true;

}

}

}

public boolean isLessThan( HugeInteger compareValue )

{

return !( isGreatThan( compareValue ) ||

isEqualTo( compareValue ) );

}

public boolean isGreatThanOrEqualTo( HugeInteger compareValue )

{

return !isLessThan( compareValue );

}

public boolean isLessThanOrEqualTo( HugeInteger compareValue )

{

return !isGreatThan( compareValue );

}

public boolean isZero()

{

for ( int i = 0; i < DIGITS; i++ ) {

if ( integer[ i ] != 0 )

return false;

}

return true;

}

}

public class HugeIntegerTest {

public static void main(String args[]){

String [][] testInputs = {

{"987654321", "234567890"},

{"987654321", "-234567890"},

{"-987654321", "234567890"},

{"-987654321", "-234567890"},

{"234567890", "987654321"},

{"234567890", "-987654321"},

{"-234567890", "987654321"},

{"-234567890", "-987654321"}

};

for(String [] ints : testInputs){

HugeInteger h1 = new HugeInteger(ints[0]);

HugeInteger h2 = new HugeInteger(ints[1]);

System.out.println("h1="+h1);

System.out.println("h2="+h2);

if(h1.isEqualTo(h2)){

System.out.println("h1 is equal to h2.");

}

if(h1.isNotEqualTo(h2)){

System.out.println("h1 is not equal to h2.");

}

if(h1.isGreatThan(h2)){

System.out.println("h1 is greater than h2.");

}

if(h1.isLessThan(h2)){

System.out.println("h1 is less than to h2.");

}

if(h1.isGreatThanOrEqualTo(h2)){

System.out.println("h1 is greater than or equal to h2.");

}

if(h1.isLessThanOrEqualTo(h2)){

System.out.println("h1 is less than or equal to h2.");

}

h1.add(h2); // h1 += h2

System.out.println("h1.add(h2);");

System.out.printf("h1=%s ",h1);

h1.subtract(h2); // h1 -= h2

System.out.println("h1.subtract(h2);");

h1.subtract(h2); // h1 -= h2

System.out.println("h1.subtract(h2);");

System.out.printf("h1=%s ",h1);

h1.add(h2); // h1 += h2

System.out.println("h1.add(h2);");

//h1.multiply(h2); // h1 *= h2

System.out.println("h1.multiply(h2);");

System.out.printf("h1=%s ",h1);

}

}

}

Where im having trouble is at line 394 and 395 where in make two objects h1 and h2. I cant seem to figure out why there is an error on both lines or if theres a place im missing that i have to add the h1 or h2 variable.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!