Classe RationalNumber

Il tuo compito è definire una classe RationalNumber in Python. Questa classe dovrebbe essere utilizzata per rappresentare un numero razionale, cioè un numero che può essere espresso come il quoziente di due interi (numeratore e denominatore).
La classe RationalNumber dovrebbe avere le seguenti caratteristiche:
  • La classe dovrebbe avere due attributi interi privati, il numerator e il denominator del numero razionale.
  • La classe dovrebbe definire i metodi magici __add__, __sub__, __mul__ e __truediv__ per sommare, sottrarre, moltiplicare e dividere due numeri razionali, rispettivamente.
  • Le operazioni di addizione, sottrazione, moltiplicazione e divisione dovrebbero essere eseguite in modo matematicamente corretto per i numeri razionali, con il risultato che dovrebbe essere un'altra istanza di RationalNumber.
  • La classe dovrebbe ridurre il numero razionale alla sua forma più semplice dividendo il numeratore e il denominatore per il loro massimo comun divisore (MCD).
  • La classe dovrebbe implementare il metodo magico __str__ che restituisce una stringa <numerator> / <denominator> nella sua forma più semplice.
Input
Output
print(RationalNumber(1, 2) + RationalNumber(1, 3)); print(RationalNumber(1, 2) - RationalNumber(1, 3)); print(RationalNumber(1, 2) * RationalNumber(1, 3)); print(RationalNumber(1, 2) / RationalNumber(1, 3));
5 / 6 1 / 6 1 / 6 3 / 2
 

Constraints

Time limit: 1 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue