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 2764 Solution Date Input and Output - URI Online Judge Solution

URI Online Judge Solution 2764 Date Input and Output Using Python Programming Language.   Your teacher would like to make a program with the following characteristics: Read a date in the DD/MM/YY format; Print the date in MM/DD/YY format; Print the date in the YY/MM/DD format ; Print the date in DD-MM-YY format.  Input   The input consists of several test files. In each test file there is one line. The line has the following DD/MM/YY format where DD, MM and YY are integers. As shown in the following input example.  Output   For each file in the entry, you have an output file. The output file has three lines according to procedures 2, 3, and 4. As shown in the following output example. Input Samples Output Samples 02/08/10 08/02/10 10/08/02 02-08-10 29/07/03 07/29/03 03/07/29 29-07-03 URI 2764 Solution in Python: D = input() DD = D[0]+D[1] MM = D[3]+D[4] YY = D[6]+D[7] print(MM+'/'+DD+'/'+YY) print(YY+'/'+MM+'/'+DD) print(DD+'-'+MM+'-'+...