public static Fraction add(Fraction a, Fraction b, Fraction... fractions) { Fraction result = Fraction.add(a, b); for (Fraction c : fractions) { result = Fraction.add(result, c); } return result; }
public static void main(String args[]){ Scanner in=new Scanner(System.in); String op=null; while(in.hasNext()){ String line=in.nextLine(); StringTokenizer token=new StringTokenizer(line,"/+-",true); int i=0; String data[]=new String[token.countTokens()]; while(token.hasMoreTokens()) { data[i]=token.nextToken(); i++; } Fraction a=new Fraction(); Fraction b=new Fraction(); Fraction c=new Fraction(); Fraction d=new Fraction(); a.set(data[0],data[2]); b.set(data[4],data[6]); if(data[3].equals("+")) a.add(b).print(); else a.subtract(b).print(); } }
/** Return the sum of the elements in the array. Return 0/1 if the length of the array is 0. */ public static final Fraction sum(Fraction[] array) { Fraction sum = new Fraction(0, 1); for (Fraction element : array) { sum = sum.add(element); } return sum; }
public static void main(String[] args) throws Exception { PrintWriter pen = new PrintWriter(System.out, true); Fraction f1; f1 = new Fraction(3, 10); Fraction f2; f2 = new Fraction(2, 5); pen.println("First fraction: " + f1); pen.println("Second fraction: " + f2); pen.println("Sum: " + (f1.add(f2))); } // main(String[])
/** * Return the dot product of the two arrays. If the lengths of the array are both 0, return 0/1. * If the two arrays do not have the same length, throw an IllegalArgumentException. */ public static final Fraction dotProduct(final Fraction[] array1, final Fraction[] array2) { int length = _commonLength(array1, array2, "FractionArrayMath.dotProduct"); Fraction sum = new Fraction(0, 1); for (int i = 0; i < length; i++) { sum = sum.add(array1[i].multiply(array2[i])); } return sum; }
public static void main(String[] args) { Fraction f1 = new Fraction(); Fraction f2 = new Fraction(); for (int i = 1; i <= 4; i++) { f1.numerator = 1; f1.denominator = 2; f2.numerator = 3; f2.denominator = 4; switch (i) { case 1: System.out.println("f1=" + f1.numerator + "/" + f1.denominator); System.out.println("f2=" + f2.numerator + "/" + f2.denominator); f1.add(f2); System.out.println("f1+f2=" + f1.numerator + "/" + f1.denominator); break; case 2: f1.add(3); System.out.println("f1+3=" + f1.numerator + "/" + f1.denominator); break; case 3: f2.sub(f1); System.out.println("f2-f1=" + f2.numerator + "/" + f2.denominator); break; case 4: f2.sub(1); System.out.println("f2-1=" + f2.numerator + "/" + f2.denominator); break; } } }
@Test public void testDivide() { assertEquals(myFraction1.divide(myFraction2).toString(), "4 / 3"); assertEquals(myFraction3.divide(myFraction4).toString(), "5 / 2"); myFraction1 = myFraction1.add(myFraction1); }
@Test public void testMultiply() { assertEquals(myFraction1.multiply(myFraction2).toString(), "12 / 25"); assertEquals(myFraction3.multiply(myFraction4).toString(), "10 / 49"); myFraction1 = myFraction1.add(myFraction1); }
@Test public void testSubtract() { assertEquals(myFraction1.subtract(myFraction2).toString(), "1 / 5"); assertEquals(myFraction3.subtract(myFraction4).toString(), "3 / 7"); myFraction1 = myFraction1.add(myFraction1); }
@Test public void testAdd() { assertEquals(myFraction1.add(myFraction2).toString(), "7 / 5"); assertEquals(myFraction3.add(myFraction4).toString(), "1"); myFraction1 = myFraction1.add(myFraction1); }