Skip to main content

URI Problem 1022 Solution TDA Rational - URI Online Judge Solution



URI Online Judge Solution 1022 TDA Rational using Python Programming Language.
You were invited to do a little job for your Mathematic teacher. The job is to read a Mathematic expression in format of two rational numbers (numerator / denominator) and present the result of the operation. Each operand or operator is separated by a blank space. The input sequence (each line) must respect the following format: number, (‘/’ char), number, operation char (‘/’, ‘*’, ‘+’, ‘-‘), number, (‘/’ char), number. The answer must be presented followed by ‘=’ operator and the simplified answer. If the answer can’t be simplified, it must be repeated after a ‘=’ operator.
Considering N1 and D1 as numerator and denominator of the first fraction, follow the orientation about how to do each one of these 4 operations:
Sum: (N1*D2 + N2*D1) / (D1*D2)
Subtraction: (N1*D2 - N2*D1) / (D1*D2)
Multiplication: (N1*N2) / (D1*D2)
Division: (N1/D1) / (N2/D2), that means (N1*D2)/(N2*D1)

Input

The input contains several cases of test. The first value is an integer N (1 ≤ N ≤ 1*104), indicating the amount of cases of test that must be read. Each case of test contains a rational value X (1 ≤ X ≤ 1000), an operation (-, +, * or /) and another rational value Y (1 ≤ Y ≤ 1000).

Output

The output must be a rational number, followed by a “=“ sign and another rational number, that is the simplification of the first value. In case of the first value can’t be simplified, the same value must be repeated after the ‘=’ sign.
Input SampleOutput Sample
4
1 / 2 + 3 / 4
1 / 2 - 3 / 4
2 / 3 * 6 / 6
1 / 2 / 3 / 4
10/8 = 5/4
-2/8 = -1/4
12/18 = 2/3
4/6 = 2/3

URI 1022 Solution in C :

def GetDivisor(X,Y):
    Divisor = Dividendo = Z = 0
    if X == 0:
        return 1
    if Y>X:
        Dividendo = Y;
        Divisor = X;
    else:
        Dividendo = X;
        Divisor = Y;
    while (Dividendo % Divisor != 0):
        Z = Dividendo % Divisor
        Dividendo = Divisor;
        Divisor = Z;

    return Divisor;

T = int(input())
while T>0:
    N1,C1, D1,C2, N2,C3, D2 = map(str,input().split())
    N1 = int(N1)
    N2 = int(N2)
    D1 = int(D1)
    D2 = int(D2)
    if C2 == '+':
        Numerator = ((N1 * D2) + (N2 * D1));
        Denominator = (D1 * D2);
    elif C2 == '-':
        Numerator = ((N1 * D2) - (N2 * D1));
        Denominator = (D1 * D2);
    elif C2=='*':
        Numerator = (N1 * N2);
        Denominator = (D1 * D2);
    else:
        Numerator = (N1 * D2);
        Denominator = (N2 * D1);

    D = GetDivisor(Numerator, Denominator)

    NumeratorSum = Numerator / D
    DenominatorSum = Denominator / D

    if NumeratorSum > 0 and DenominatorSum > 0:
       print("%i/%i=%i/%i"%(Numerator,Denominator,NumeratorSum,DenominatorSum))
    else:
        if DenominatorSum < 0:
            DenominatorSum = -DenominatorSum;
            NumeratorSum = -NumeratorSum;

       print("%i/%i=%i/%i"%(Numerator,Denominator,NumeratorSum,DenominatorSum))

    T-=1

Comments

Popular posts from this blog

URI Problem 1001 Solution Extremely Basic - - URI Online Judge Solution

URI Online Judge Problem 1001 Extremely Basic Solution using C, Python Programming Language. Read 2 variables, named  A  and  B  and make the sum of these two variables, assigning its result to the variable  X . Print  X  as shown below. Print endline after the result otherwise you will get “ Presentation Error ”. Input The input file will contain 2 integer numbers. Output Print the letter  X  (uppercase) with a blank space before and after the equal signal followed by the value of X, according to the following example. Obs.: don't forget the endline after all. Samples Input Samples Output 10 9 X = 19 -10 4 X = -6 15 -7 X = 8 URI 1001 Solution in Python A = int(input()) B = int(input()) X = A + B print("X =",X); URI 1001 Solution in C: #include int main() { int A,B,X; scanf ("%d %d", &A, &B); X=A+B; printf("X = %d\n",X); return 0; }

URI Online Judge Solution 1069 Diamonds and Sand

URI Online Judge Solution 1069  Diamonds and Sand using Python Programming Language. John is working in a diamond mine, trying to extract the highest number of diamond "<>". He must exclude all sand particles found "." in this process and after a diamond can be extracted, new diamonds can be formed. If he has as an input. <... << .. >> ....> .... >>>. three diamonds are formed. The first is taken from <..> resulting. <... <> ....> .... >>>. The second diamond is then removed, leaving. <.......> .... >>>. The third diamond is then removed, leaving at the end ..... >>>. without the possibility of extracting new diamonds. Input Read an integer N that is the number of test cases. Then follows N lines each up to 1000 characters, including "<" ,">" and "." Output You must print the amount of diamonds that can be extrated in each test ca...

URI Problem 1002 Solution Area of a Circle - URI Online Judge Solution

URI Online Judge Problem 1002 Solution Area of a Circle using Python Programming Language. The formula to calculate the area of a circumference is defined as A = π . R2. Considering to this problem that π = 3.14159: Calculate the area using the formula given in the problem description. Input  The input contains a value of floating point (double precision), that is the variable R. Output  Present the message "A=" followed by the value of the variable, as in the example bellow, with four places after the decimal point. Use all double precision variables. Like all the problems, don't forget to print the end of line after the result, otherwise you will receive "Presentation Error". Input Samples Output Samples 2.00 A=12.5664 100.64 A=31819.3103 150.00 A=70685.7750 URI 1002 Solution in Python R = float(input()); R = R*R*3.14159; print("A=%.4f" % R); URI 1002 Solution in C: #include #define A 3.14159 int main() {...