Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- class ArbitraryInteger
- {
- ArrayList<Integer> value = new ArrayList<Integer>();
- public ArbitraryInteger(ArrayList<Integer> num)
- {
- for(int counter = 0; counter < num.size(); counter++)
- {
- value.add(num.get(counter));
- }
- }
- public ArbitraryInteger(int num)
- {
- ArbitraryInteger(Integer.toString(num));
- }
- public ArbitraryInteger(String num)
- {
- ArbitraryInteger(num);
- }
- public void setValue(String num)
- {
- ArbitraryInteger(num);
- }
- public void setValue(int num)
- {
- ArbitraryInteger(Integer.toString(num));
- }
- public void ArbitraryInteger(String num)
- {
- for(int counter = 0; counter < num.length(); counter++)
- {
- value.add(Integer.parseInt(num.substring(counter, counter + 1)));
- }
- }
- public void printValue()
- {
- for(int v : value)
- {
- System.out.print(v);
- }
- }
- public ArrayList<Integer> getValue()
- {
- return value;
- }
- public void add(int num)
- {
- add(new ArbitraryInteger(num));
- }
- public void add(String num)
- {
- add(new ArbitraryInteger(num));
- }
- //add alters value's value
- //for example, lets say this.value = {1,3,2} (which is 132 in terms of ints)
- //if do this.add(new ArbitraryInteger(5), this.value will then = {1,3,7}
- //however, if I want to add together 2 ArbitraryInteger objects and store the result
- //in a third object, I must use addToNew
- public void add(ArbitraryInteger i)
- {
- ArrayList<Integer> tempThisValue = new ArrayList<Integer>();
- for(int counter = 0; counter < value.size(); counter++)
- {
- tempThisValue.add(value.get(counter));
- }
- ArrayList<Integer> tempIvalue = new ArrayList<Integer>();
- for(int counter = 0; counter < i.value.size(); counter++)
- {
- tempIvalue.add(i.value.get(counter));
- }
- while(tempIvalue.size() > tempThisValue.size())
- {
- tempThisValue.add(0,0);
- }
- while(tempIvalue.size() < tempThisValue.size())
- {
- tempIvalue.add(0,0);
- }
- value = new ArrayList<Integer>();
- int carryingTen = 0;
- for(int counter = 0; counter < tempThisValue.size(); counter++)
- {
- if((tempIvalue.get(tempIvalue.size() - 1 - counter) +
- tempThisValue.get(tempThisValue.size() - 1 - counter)) > 9)
- {
- carryingTen = 1;
- value.add(0, (tempIvalue.get(tempIvalue.size() - 1 - counter) +
- tempThisValue.get(tempThisValue.size() - 1 - counter)) - 10);
- }
- else
- {
- value.add(0, (tempIvalue.get(tempIvalue.size() - 1 - counter) +
- tempThisValue.get(tempThisValue.size() - 1 - counter)) + carryingTen);
- carryingTen = 0;
- }
- }
- if(carryingTen == 1)
- {
- value.add(0,1);
- }
- }
- public ArbitraryInteger addReturnNew(ArbitraryInteger i)
- {
- ArrayList<Integer> result = new ArrayList<Integer>();
- ArrayList<Integer> tempThisValue = new ArrayList<Integer>();
- for(int counter = 0; counter < value.size(); counter++)
- {
- tempThisValue.add(value.get(counter));
- }
- ArrayList<Integer> tempIvalue = new ArrayList<Integer>();
- for(int counter = 0; counter < i.value.size(); counter++)
- {
- tempIvalue.add(i.value.get(counter));
- }
- while(tempIvalue.size() > tempThisValue.size())
- {
- tempThisValue.add(0,0);
- }
- while(tempIvalue.size() < tempThisValue.size())
- {
- tempIvalue.add(0,0);
- }
- int carryingTen = 0;
- for(int counter = 0; counter < tempThisValue.size(); counter++)
- {
- if((tempIvalue.get(tempIvalue.size() - 1 - counter) +
- tempThisValue.get(tempThisValue.size() - 1 - counter)) > 9)
- {
- carryingTen = 1;
- result.add(0, (tempIvalue.get(tempIvalue.size() - 1 - counter) +
- tempThisValue.get(tempThisValue.size() - 1 - counter)) - 10);
- }
- else
- {
- result.add(0, (tempIvalue.get(tempIvalue.size() - 1 - counter) +
- tempThisValue.get(tempThisValue.size() - 1 - counter)) + carryingTen);
- carryingTen = 0;
- }
- }
- if(carryingTen == 1)
- {
- result.add(0,1);
- }
- return new ArbitraryInteger(result);
- }
- }
- public class numberDriver
- {
- public static void main(String[] args)
- {
- ArbitraryInteger a = new ArbitraryInteger("109328409327");
- ArbitraryInteger b = new ArbitraryInteger("987209347509745");
- ArbitraryInteger c = a.addReturnNew(b);
- c.printValue();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement