Problem Statement
You are given two
Each of the equations is of the form "A*X + B*Y = C". The spaces must appear exactly as in this example, i.e., there is exactly one space both before and after the signs "+" and "=", and there are no other spaces. The coefficients A, B, and C are integers. If a coefficient is non-negative, the equation contains just the number, without the unary plus sign. If a coefficient is negative, it is always enclosed in parentheses, and it contains the unary minus sign. No coefficient will contain unnecessary leading zeroes.
If the pair of equations has a unique solution, return the solution formatted as a
If the pair of equations has more than one solution, return the
Definition
- Class:
- TwoEquations
- Method:
- solve
- Parameters:
- String, String
- Returns:
- String
- Method signature:
- String solve(String first, String second)
- (be sure your method is public)
Notes
- A fraction A/B is called reduced if and only if the greatest common divisor of A and B is 1. Note that each rational number corresponds to exactly one reduced fraction with B>0.
Constraints
- first and second will be formatted as described in the problem statement.
- All coefficients in both equations will be integers between -9 and 9, inclusive.
Examples
"1*X + 2*Y = 6"
"1*X + (-4)*Y = (-3)"
Returns: "X=3/1 Y=3/2"
Multiply the first equation by two, then add the second equation to the first one. You will get a new equation: 3*X = 9. Thus X=3. If we substitute this into one of the original equations, we get Y=3/2.
"(-3)*X + 0*Y = 7"
"0*X + 8*Y = 6"
Returns: "X=(-7)/3 Y=3/4"
This time we can compute each of the variables separately. Note that in the result, the numerator (not the denominator) of X is negative, and that it is enclosed in parentheses. Also, note that the value of Y is output as a reduced fraction.
"1*X + 0*Y = 1"
"1*X + 0*Y = 1"
Returns: "MULTIPLE SOLUTIONS"
"1*X + 3*Y = 1"
"2*X + 6*Y = (-1)"
Returns: "NO SOLUTIONS"
"0*X + 0*Y = 0"
"(-3)*X + (-3)*Y = 0"
Returns: "MULTIPLE SOLUTIONS"
"0*X + 0*Y = 0"
"0*X + 0*Y = 0"
Returns: "MULTIPLE SOLUTIONS"
"0*X + 0*Y = 0"
"0*X + 0*Y = 4"
Returns: "NO SOLUTIONS"
"0*X + 0*Y = 4"
"0*X + 0*Y = 0"
Returns: "NO SOLUTIONS"
"0*X + 0*Y = 4"
"3*X + 1*Y = 4"
Returns: "NO SOLUTIONS"
"3*X + 1*Y = 4"
"0*X + 0*Y = 4"
Returns: "NO SOLUTIONS"
"2*X + 3*Y = 9"
"(-2)*X + (-3)*Y = (-9)"
Returns: "MULTIPLE SOLUTIONS"
"9*X + 8*Y = 7"
"7*X + 8*Y = 9"
Returns: "X=(-1)/1 Y=2/1"
"9*X + 8*Y = 7"
"8*X + 9*Y = 8"
Returns: "X=(-1)/17 Y=16/17"
"8*X + 9*Y = 8"
"9*X + (-8)*Y = 7"
Returns: "X=127/145 Y=16/145"
"0*X + 3*Y = 9"
"7*X + (-7)*Y = (-3)"
Returns: "X=18/7 Y=3/1"
"(-9)*X + (-9)*Y = (-9)"
"(-9)*X + 9*Y = (-8)"
Returns: "X=17/18 Y=1/18"
"(-9)*X + (-9)*Y = (-9)"
"(-7)*X + (-8)*Y = (-8)"
Returns: "X=0/1 Y=1/1"
"3*X + 7*Y = 0"
"(-2)*X + 9*Y = 0"
Returns: "X=0/1 Y=0/1"
"(-6)*X + 6*Y = (-7)"
"(-1)*X + 1*Y = (-6)"
Returns: "NO SOLUTIONS"
"(-7)*X + 2*Y = 1"
"0*X + (-8)*Y = (-2)"
Returns: "X=(-1)/14 Y=1/4"
"(-8)*X + 1*Y = (-8)"
"8*X + (-2)*Y = 1"
Returns: "X=15/8 Y=7/1"
"1*X + 0*Y = (-4)"
"3*X + (-1)*Y = 6"
Returns: "X=(-4)/1 Y=(-18)/1"
"(-3)*X + 3*Y = (-2)"
"(-8)*X + (-4)*Y = (-2)"
Returns: "X=7/18 Y=(-5)/18"
"8*X + (-5)*Y = (-3)"
"(-4)*X + (-5)*Y = (-3)"
Returns: "X=0/1 Y=3/5"
"4*X + 6*Y = 5"
"5*X + (-9)*Y = 7"
Returns: "X=29/22 Y=(-1)/22"
"(-7)*X + (-8)*Y = (-6)"
"0*X + 0*Y = (-7)"
Returns: "NO SOLUTIONS"
"7*X + 5*Y = 7"
"(-4)*X + (-1)*Y = (-2)"
Returns: "X=3/13 Y=14/13"
"5*X + 6*Y = (-8)"
"7*X + (-6)*Y = (-5)"
Returns: "X=(-13)/12 Y=(-31)/72"
"(-7)*X + 0*Y = (-4)"
"(-6)*X + 4*Y = (-6)"
Returns: "X=4/7 Y=(-9)/14"
"6*X + (-1)*Y = (-4)"
"4*X + (-6)*Y = 9"
Returns: "X=(-33)/32 Y=(-35)/16"
"5*X + (-3)*Y = 1"
"(-8)*X + (-4)*Y = 4"
Returns: "X=(-2)/11 Y=(-7)/11"
"4*X + (-6)*Y = (-9)"
"(-7)*X + 1*Y = 4"
Returns: "X=(-15)/38 Y=47/38"
"5*X + (-1)*Y = 9"
"8*X + 3*Y = 5"
Returns: "X=32/23 Y=(-47)/23"
"(-5)*X + 9*Y = 2"
"8*X + 9*Y = 1"
Returns: "X=(-1)/13 Y=7/39"
"(-5)*X + (-4)*Y = 2"
"(-5)*X + (-8)*Y = (-2)"
Returns: "X=(-6)/5 Y=1/1"
"(-2)*X + 3*Y = (-8)"
"4*X + (-6)*Y = 4"
Returns: "NO SOLUTIONS"
"7*X + (-9)*Y = 2"
"(-5)*X + 5*Y = (-7)"
Returns: "X=53/10 Y=39/10"
"4*X + 1*Y = (-8)"
"(-3)*X + (-7)*Y = 6"
Returns: "X=(-2)/1 Y=0/1"
"(-7)*X + 2*Y = 1"
"(-7)*X + (-7)*Y = 6"
Returns: "X=(-19)/63 Y=(-5)/9"
"(-5)*X + 1*Y = 1"
"(-7)*X + 6*Y = 2"
Returns: "X=(-4)/23 Y=3/23"
"2*X + 4*Y = 6"
"5*X + (-5)*Y = (-5)"
Returns: "X=1/3 Y=4/3"
"3*X + 7*Y = 5"
"(-2)*X + 6*Y = 2"
Returns: "X=1/2 Y=1/2"
"8*X + 8*Y = 3"
"(-8)*X + 4*Y = (-3)"
Returns: "X=3/8 Y=0/1"
"0*X + (-4)*Y = 1"
"(-1)*X + 8*Y = 0"
Returns: "X=(-2)/1 Y=(-1)/4"
"(-9)*X + (-4)*Y = (-1)"
"6*X + 8*Y = 3"
Returns: "X=(-1)/12 Y=7/16"
"0*X + 1*Y = 3"
"2*X + 5*Y = (-5)"
Returns: "X=(-10)/1 Y=3/1"
"(-1)*X + (-3)*Y = (-9)"
"(-5)*X + 5*Y = 0"
Returns: "X=9/4 Y=9/4"
"9*X + (-1)*Y = 7"
"4*X + 5*Y = 2"
Returns: "X=37/49 Y=(-10)/49"
"6*X + (-7)*Y = 0"
"1*X + 3*Y = 9"
Returns: "X=63/25 Y=54/25"
"6*X + (-8)*Y = (-1)"
"4*X + 2*Y = (-1)"
Returns: "X=(-5)/22 Y=(-1)/22"
"(-7)*X + (-5)*Y = (-8)"
"7*X + (-1)*Y = (-2)"
Returns: "X=(-1)/21 Y=5/3"
"(-5)*X + (-4)*Y = 9"
"9*X + 5*Y = (-5)"
Returns: "X=25/11 Y=(-56)/11"
"(-5)*X + (-1)*Y = (-3)"
"7*X + (-8)*Y = (-4)"
Returns: "X=20/47 Y=41/47"
"9*X + (-2)*Y = 6"
"(-1)*X + (-2)*Y = (-1)"
Returns: "X=7/10 Y=3/20"
"(-2)*X + 3*Y = 9"
"9*X + 8*Y = 6"
Returns: "X=(-54)/43 Y=93/43"
"(-9)*X + 9*Y = (-3)"
"(-4)*X + (-6)*Y = (-1)"
Returns: "X=3/10 Y=(-1)/30"
"2*X + (-9)*Y = (-6)"
"(-6)*X + (-8)*Y = (-5)"
Returns: "X=(-3)/70 Y=23/35"
"0*X + (-5)*Y = (-9)"
"(-2)*X + 1*Y = (-4)"
Returns: "X=29/10 Y=9/5"
"5*X + (-6)*Y = (-7)"
"9*X + 3*Y = 8"
Returns: "X=9/23 Y=103/69"
"2*X + (-1)*Y = (-2)"
"0*X + (-5)*Y = 5"
Returns: "X=(-3)/2 Y=(-1)/1"
"(-4)*X + (-1)*Y = 1"
"(-3)*X + 7*Y = 1"
Returns: "X=(-8)/31 Y=1/31"
"(-3)*X + 7*Y = 6"
"(-5)*X + (-8)*Y = (-5)"
Returns: "X=(-13)/59 Y=45/59"
"0*X + 9*Y = (-4)"
"7*X + (-5)*Y = 5"
Returns: "X=25/63 Y=(-4)/9"
"(-9)*X + (-6)*Y = 9"
"0*X + (-8)*Y = 4"
Returns: "X=(-2)/3 Y=(-1)/2"
"9*X + (-4)*Y = 4"
"(-9)*X + (-9)*Y = (-7)"
Returns: "X=64/117 Y=3/13"
"(-1)*X + (-2)*Y = 3"
"(-3)*X + 8*Y = 5"
Returns: "X=(-17)/7 Y=(-2)/7"
"(-9)*X + 2*Y = (-8)"
"(-7)*X + 3*Y = (-5)"
Returns: "X=14/13 Y=11/13"
"(-8)*X + 8*Y = 0"
"(-7)*X + 0*Y = 6"
Returns: "X=(-6)/7 Y=(-6)/7"
"1*X + 1*Y = 1"
"0*X + 0*Y = 0"
Returns: "MULTIPLE SOLUTIONS"
"(-3)*X + 4*Y = 1"
"6*X + (-8)*Y = (-2)"
Returns: "MULTIPLE SOLUTIONS"
"(-3)*X + 0*Y = 7"
"0*X + 8*Y = 6"
Returns: "X=(-7)/3 Y=3/4"
"1*X + 3*Y = 1"
"2*X + 6*Y = (-1)"
Returns: "NO SOLUTIONS"
"0*X + 0*Y = 2"
"0*X + 0*Y = 2"
Returns: "NO SOLUTIONS"
"0*X + 0*Y = 6"
"1*X + (-4)*Y = (-3)"
Returns: "NO SOLUTIONS"
"0*X + 0*Y = 0"
"0*X + 0*Y = 1"
Returns: "NO SOLUTIONS"
"0*X + 0*Y = 1"
"0*X + 0*Y = 3"
Returns: "NO SOLUTIONS"
"3*X + 3*Y = 3"
"0*X + 0*Y = 3"
Returns: "NO SOLUTIONS"
"1*X + 0*Y = 1"
"1*X + 0*Y = 1"
Returns: "MULTIPLE SOLUTIONS"
"1*X + 3*Y = 6"
"1*X + 1*Y = 2"
Returns: "X=0/1 Y=2/1"
"0*X + 0*Y = 1"
"0*X + 0*Y = 1"
Returns: "NO SOLUTIONS"
"(-3)*X + 9*Y = 7"
"7*X + 8*Y = 6"
Returns: "X=(-2)/87 Y=67/87"
"0*X + 0*Y = 1"
"0*X + 0*Y = 0"
Returns: "NO SOLUTIONS"
"(-2)*X + 0*Y = 2"
"4*X + 0*Y = 4"
Returns: "NO SOLUTIONS"
"1*X + 2*Y = 3"
"3*X + 6*Y = 9"
Returns: "MULTIPLE SOLUTIONS"
"1*X + 2*Y = 4"
"2*X + 4*Y = 8"
Returns: "MULTIPLE SOLUTIONS"
"0*X + 1*Y = 2"
"0*X + 2*Y = 3"
Returns: "NO SOLUTIONS"
"(-5)*X + (-7)*Y = (-9)"
"9*X + (-8)*Y = 8"
Returns: "X=128/103 Y=41/103"
"0*X + 0*Y = 5"
"0*X + 3*Y = 6"
Returns: "NO SOLUTIONS"
"0*X + 0*Y = 0"
"1*X + 1*Y = 1"
Returns: "MULTIPLE SOLUTIONS"
"0*X + 0*Y = 0"
"0*X + 0*Y = 0"
Returns: "MULTIPLE SOLUTIONS"
"0*X + 2*Y = 6"
"1*X + 0*Y = (-3)"
Returns: "X=(-3)/1 Y=3/1"
"0*X + 1*Y = 0"
"1*X + 0*Y = 0"
Returns: "X=0/1 Y=0/1"
"(-2)*X + (-5)*Y = 2"
"(-4)*X + (-3)*Y = 4"
Returns: "X=(-1)/1 Y=0/1"
"1*X + 1*Y = 3"
"1*X + 1*Y = 4"
Returns: "NO SOLUTIONS"
"2*X + 2*Y = 2"
"3*X + 3*Y = 3"
Returns: "MULTIPLE SOLUTIONS"
"0*X + (-2)*Y = 2"
"0*X + 4*Y = 4"
Returns: "NO SOLUTIONS"
"1*X + 2*Y = 6"
"1*X + 2*Y = 6"
Returns: "MULTIPLE SOLUTIONS"
"2*X + 2*Y = 2"
"4*X + 4*Y = 4"
Returns: "MULTIPLE SOLUTIONS"
"1*X + 1*Y = 3"
"1*X + 1*Y = 3"
Returns: "MULTIPLE SOLUTIONS"
"1*X + 2*Y = 6"
"1*X + (-2)*Y = (-6)"
Returns: "X=0/1 Y=3/1"
"(-2)*X + 3*Y = 1"
"(-2)*X + 3*Y = 1"
Returns: "MULTIPLE SOLUTIONS"
"0*X + 0*Y = 6"
"0*X + 0*Y = 0"
Returns: "NO SOLUTIONS"
"0*X + 0*Y = 1"
"0*X + 0*Y = 2"
Returns: "NO SOLUTIONS"
"0*X + 2*Y = 5"
"0*X + 2*Y = 9"
Returns: "NO SOLUTIONS"
"1*X + 0*Y = 1"
"1*X + 0*Y = 2"
Returns: "NO SOLUTIONS"
"7*X + 4*Y = 2"
"7*X + 3*Y = 1"
Returns: "X=(-2)/7 Y=1/1"
"1*X + 0*Y = 2"
"0*X + (-1)*Y = 3"
Returns: "X=2/1 Y=(-3)/1"
"0*X + 0*Y = (-1)"
"0*X + 0*Y = (-1)"
Returns: "NO SOLUTIONS"
"0*X + 0*Y = 3"
"0*X + 0*Y = 3"
Returns: "NO SOLUTIONS"
"0*X + 0*Y = 5"
"0*X + 0*Y = 7"
Returns: "NO SOLUTIONS"
"1*X + 0*Y = 0"
"0*X + 1*Y = 0"
Returns: "X=0/1 Y=0/1"
"1*X + 2*Y = 6"
"0*X + (-4)*Y = (-3)"
Returns: "X=9/2 Y=3/4"
"1*X + 2*Y = 3"
"2*X + 4*Y = 6"
Returns: "MULTIPLE SOLUTIONS"
"1*X + 1*Y = (-6)"
"1*X + 0*Y = (-6)"
Returns: "X=(-6)/1 Y=0/1"
"(-8)*X + (-4)*Y = 9"
"(-9)*X + 6*Y = (-1)"
Returns: "X=(-25)/42 Y=(-89)/84"
"1*X + 1*Y = 0"
"2*X + 3*Y = 1"
Returns: "X=(-1)/1 Y=1/1"
"9*X + 9*Y = (-1)"
"(-8)*X + 9*Y = 1"
Returns: "X=(-2)/17 Y=1/153"
"8*X + 9*Y = 1"
"1*X + 1*Y = 9"
Returns: "X=80/1 Y=(-71)/1"
"0*X + 1*Y = 3"
"0*X + 2*Y = 3"
Returns: "NO SOLUTIONS"
"0*X + 1*Y = 1"
"0*X + 1*Y = 2"
Returns: "NO SOLUTIONS"
"2*X + 0*Y = 0"
"3*X + 0*Y = 4"
Returns: "NO SOLUTIONS"
"2*X + 2*Y = 4"
"1*X + 2*Y = 2"
Returns: "X=2/1 Y=0/1"
"0*X + 0*Y = 5"
"0*X + 0*Y = 6"
Returns: "NO SOLUTIONS"
"1*X + 2*Y = 6"
"1*X + (-4)*Y = (-3)"
Returns: "X=3/1 Y=3/2"
"3*X + 0*Y = 6"
"2*X + 0*Y = 5"
Returns: "NO SOLUTIONS"
"3*X + 0*Y = 1"
"3*X + 1*Y = 1"
Returns: "X=1/3 Y=0/1"
"1*X + 0*Y = 1"
"2*X + 0*Y = 2"
Returns: "MULTIPLE SOLUTIONS"
"1*X + 2*Y = 1"
"3*X + 4*Y = 2"
Returns: "X=0/1 Y=1/2"
"0*X + 7*Y = 0"
"3*X + 0*Y = 3"
Returns: "X=1/1 Y=0/1"
"9*X + 1*Y = 1"
"1*X + 9*Y = 0"
Returns: "X=9/80 Y=(-1)/80"
"0*X + 1*Y = 2"
"0*X + 7*Y = 7"
Returns: "NO SOLUTIONS"
"0*X + 1*Y = 0"
"0*X + 1*Y = 1"
Returns: "NO SOLUTIONS"
"2*X + 4*Y = 9"
"1*X + 2*Y = 3"
Returns: "NO SOLUTIONS"
"0*X + 8*Y = 3"
"0*X + 4*Y = 1"
Returns: "NO SOLUTIONS"
"0*X + 1*Y = 1"
"0*X + 2*Y = 3"
Returns: "NO SOLUTIONS"
"1*X + 1*Y = 0"
"2*X + 2*Y = 0"
Returns: "MULTIPLE SOLUTIONS"
"1*X + 0*Y = 0"
"1*X + 0*Y = 1"
Returns: "NO SOLUTIONS"
"1*X + 0*Y = 0"
"2*X + 0*Y = 1"
Returns: "NO SOLUTIONS"
"0*X + 1*Y = 7"
"3*X + 6*Y = 3"
Returns: "X=(-13)/1 Y=7/1"
"0*X + 1*Y = 2"
"0*X + 2*Y = 2"
Returns: "NO SOLUTIONS"
"0*X + 1*Y = 1"
"0*X + 2*Y = 1"
Returns: "NO SOLUTIONS"