Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 4.23 KB | None | 0 0
  1. import java.util.ArrayList;
  2.  
  3. class ArbitraryInteger
  4. {
  5.     ArrayList<Integer> value = new ArrayList<Integer>();
  6.    
  7.     public ArbitraryInteger(ArrayList<Integer> num)
  8.     {
  9.         for(int counter = 0; counter < num.size(); counter++)
  10.         {
  11.             value.add(num.get(counter));
  12.         }
  13.     }
  14.    
  15.     public ArbitraryInteger(int num)
  16.     {
  17.         ArbitraryInteger(Integer.toString(num));
  18.     }
  19.    
  20.     public ArbitraryInteger(String num)
  21.     {
  22.         ArbitraryInteger(num);
  23.     }
  24.    
  25.     public void setValue(String num)
  26.     {
  27.         ArbitraryInteger(num);
  28.     }
  29.        
  30.     public void setValue(int num)
  31.     {
  32.         ArbitraryInteger(Integer.toString(num));
  33.     }
  34.    
  35.     public void ArbitraryInteger(String num)
  36.     {      
  37.         for(int counter = 0; counter < num.length(); counter++)
  38.         {
  39.             value.add(Integer.parseInt(num.substring(counter, counter + 1)));
  40.         }
  41.     }
  42.    
  43.     public void printValue()
  44.     {
  45.         for(int v : value)
  46.         {
  47.             System.out.print(v);
  48.         }
  49.     }
  50.    
  51.     public ArrayList<Integer> getValue()
  52.     {
  53.         return value;
  54.     }
  55.    
  56.     public void add(int num)
  57.     {
  58.         add(new ArbitraryInteger(num));
  59.     }
  60.    
  61.     public void add(String num)
  62.     {
  63.         add(new ArbitraryInteger(num));
  64.     }
  65.    
  66.     //add alters value's value
  67.     //for example, lets say this.value = {1,3,2} (which is 132 in terms of ints)
  68.     //if do this.add(new ArbitraryInteger(5), this.value will then = {1,3,7}
  69.     //however, if I want to add together 2 ArbitraryInteger objects and store the result
  70.     //in a third object, I must use addToNew
  71.     public void add(ArbitraryInteger i)
  72.     {
  73.         ArrayList<Integer> tempThisValue = new ArrayList<Integer>();
  74.         for(int counter = 0; counter < value.size(); counter++)
  75.         {
  76.             tempThisValue.add(value.get(counter));
  77.         }
  78.        
  79.         ArrayList<Integer> tempIvalue = new ArrayList<Integer>();
  80.         for(int counter = 0; counter < i.value.size(); counter++)
  81.         {
  82.             tempIvalue.add(i.value.get(counter));
  83.         }
  84.        
  85.         while(tempIvalue.size() > tempThisValue.size())
  86.         {
  87.             tempThisValue.add(0,0);
  88.         }
  89.         while(tempIvalue.size() < tempThisValue.size())
  90.         {
  91.             tempIvalue.add(0,0);
  92.         }
  93.        
  94.         value = new ArrayList<Integer>();
  95.        
  96.         int carryingTen = 0;
  97.        
  98.         for(int counter = 0; counter < tempThisValue.size(); counter++)
  99.         {
  100.             if((tempIvalue.get(tempIvalue.size() - 1 - counter) +
  101.             tempThisValue.get(tempThisValue.size() - 1 - counter)) > 9)
  102.             {  
  103.                 carryingTen = 1;
  104.                 value.add(0, (tempIvalue.get(tempIvalue.size() - 1 - counter) +
  105.                 tempThisValue.get(tempThisValue.size() - 1 - counter)) - 10);
  106.             }
  107.             else
  108.             {  
  109.                 value.add(0, (tempIvalue.get(tempIvalue.size() - 1 - counter) +
  110.                 tempThisValue.get(tempThisValue.size() - 1 - counter)) + carryingTen);
  111.                 carryingTen = 0;
  112.             }
  113.         }
  114.         if(carryingTen == 1)
  115.         {
  116.             value.add(0,1);
  117.         }      
  118.     }
  119.    
  120.     public ArbitraryInteger addReturnNew(ArbitraryInteger i)
  121.     {
  122.         ArrayList<Integer> result = new ArrayList<Integer>();
  123.        
  124.         ArrayList<Integer> tempThisValue = new ArrayList<Integer>();
  125.         for(int counter = 0; counter < value.size(); counter++)
  126.         {
  127.             tempThisValue.add(value.get(counter));
  128.         }
  129.        
  130.         ArrayList<Integer> tempIvalue = new ArrayList<Integer>();
  131.         for(int counter = 0; counter < i.value.size(); counter++)
  132.         {
  133.             tempIvalue.add(i.value.get(counter));
  134.         }
  135.        
  136.         while(tempIvalue.size() > tempThisValue.size())
  137.         {
  138.             tempThisValue.add(0,0);
  139.         }
  140.         while(tempIvalue.size() < tempThisValue.size())
  141.         {
  142.             tempIvalue.add(0,0);
  143.         }
  144.        
  145.         int carryingTen = 0;
  146.        
  147.         for(int counter = 0; counter < tempThisValue.size(); counter++)
  148.         {
  149.             if((tempIvalue.get(tempIvalue.size() - 1 - counter) +
  150.             tempThisValue.get(tempThisValue.size() - 1 - counter)) > 9)
  151.             {  
  152.                 carryingTen = 1;
  153.                 result.add(0, (tempIvalue.get(tempIvalue.size() - 1 - counter) +
  154.                 tempThisValue.get(tempThisValue.size() - 1 - counter)) - 10);
  155.             }
  156.             else
  157.             {  
  158.                 result.add(0, (tempIvalue.get(tempIvalue.size() - 1 - counter) +
  159.                 tempThisValue.get(tempThisValue.size() - 1 - counter)) + carryingTen);
  160.                 carryingTen = 0;
  161.             }
  162.         }
  163.         if(carryingTen == 1)
  164.         {
  165.             result.add(0,1);
  166.         }
  167.        
  168.         return new ArbitraryInteger(result);
  169.     }      
  170. }
  171.  
  172. public class numberDriver
  173. {
  174.     public static void main(String[] args)
  175.     {
  176.         ArbitraryInteger a = new ArbitraryInteger("109328409327");
  177.         ArbitraryInteger b = new ArbitraryInteger("987209347509745");
  178.        
  179.         ArbitraryInteger c = a.addReturnNew(b);
  180.        
  181.         c.printValue();
  182.     }
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement