/***************************************************************************
* Author: Isai Damier
* Title: Addition of Fractions
* Project: geekviewpoint
* Package: algorithms
*
* Statement:
* Add the two given positive fractions
*
* Sample Input: {5,6}, {7,8})
* Sample Output: {41,24}
*
* Technical Details:
* This is the same algorithm you learned in grade school:
* 1) find the lowest common denominator, which is the same as finding
* the lowest common multiplier of the given denominators.
* 2) Convert the given fractions into equivalent fractions with the
* new denominator
* 3) add the numerators
* 4) reduce the resulting fraction using the GCD (greatest common
* divisor) of its numerator and denominator.
*
**************************************************************************/
public int[] addingFractions(int[] a, int[] b) {
int denominator = LCM(a[1], b[1]);
int numA = denominator / a[1] * a[0];
int numB = denominator / b[1] * b[0];
int numerator = numA + numB;
int gcd = GCD(numerator, denominator);
return new int[]{numerator / gcd, denominator / gcd};
}
import org.junit.Test;
import static org.junit.Assert.*;
public class NumbersTest {
/**
* Test of addingFractions method, of class Numbers.
*/
@Test
public void testAddingFractions() {
System.out.println("addingFractions");
int[] a = {5,6};
int[] b = {7,8};
Numbers instance = new Numbers();
int[] expResult = {41,24};
int[] result = instance.addingFractions(a, b);
assertArrayEquals(expResult, result);
}
}