Clase RationalNumber
Tu tarea es definir una clase
RationalNumber
en Python. Esta clase se utilizará para representar un número racional, un número que puede expresarse como el cociente de dos enteros (numerador y denominador).La clase
RationalNumber
debe tener las siguientes características:- La clase debe tener dos atributos enteros privados, el
numerator
y eldenominator
del número racional.
- La clase debe definir los métodos mágicos
__add__
,__sub__
,__mul__
y__truediv__
para sumar, restar, multiplicar y dividir dos números racionales, respectivamente.
- Las operaciones de suma, resta, multiplicación y división deben realizarse de manera matemáticamente precisa para números racionales, resultando en otra instancia de
RationalNumber
.
- La clase debe reducir el número racional a su forma más simple dividiendo el numerador y el denominador por su máximo común divisor (MCD).
- La clase debe implementar el método mágico
__str__
que debe devolver una cadena<numerator> / <denominator>
en su forma más simple.
Entrada | Salida |
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