Classe RationalNumber
Votre tâche est de définir une classe
RationalNumber
en Python. Cette classe doit être utilisée pour représenter un nombre rationnel, c'est-à-dire un nombre qui peut s'exprimer comme le quotient de deux entiers (numérateur et dénominateur).La classe
RationalNumber
doit avoir les caractéristiques suivantes :- La classe doit avoir deux attributs entiers privés : le
numerator
(numérateur) et ledenominator
(dénominateur) du nombre rationnel.
- La classe doit définir les méthodes magiques
__add__
,__sub__
,__mul__
et__truediv__
pour additionner, soustraire, multiplier et diviser deux nombres rationnels, respectivement.
- Les opérations d'addition, de soustraction, de multiplication et de division doivent être réalisées de manière mathématiquement exacte pour les nombres rationnels, le résultat étant une nouvelle instance de
RationalNumber
.
- La classe doit réduire le nombre rationnel à sa forme la plus simple en divisant le numérateur et le dénominateur par leur plus grand commun diviseur (PGCD).
- La classe doit implémenter la méthode magique
__str__
qui retourne une chaîne de caractères sous la forme<numerator> / <denominator>
dans sa forme la plus simple.
Entrée | Sortie |
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