Klasse RationalNumber
Deine Aufgabe ist es, eine
RationalNumber
-Klasse in Python zu definieren. Diese Klasse soll dazu dienen, eine rationale Zahl darzustellen, also eine Zahl, die als Quotient zweier ganzer Zahlen (Zähler und Nenner) ausgedrückt werden kann.Die
RationalNumber
-Klasse soll die folgenden Eigenschaften besitzen:- Die Klasse soll zwei private Ganzzahl-Attribute haben: den
numerator
(Zähler) und dendenominator
(Nenner) der rationalen Zahl.
- Die Klasse soll die magischen Methoden
__add__
,__sub__
,__mul__
und__truediv__
definieren, um zwei rationale Zahlen zu addieren, zu subtrahieren, zu multiplizieren und zu dividieren.
- Die Operationen Addition, Subtraktion, Multiplikation und Division sollen mathematisch korrekt für rationale Zahlen durchgeführt werden, wobei das Ergebnis wieder eine Instanz von
RationalNumber
ist.
- Die Klasse soll die rationale Zahl auf ihre einfachste Form kürzen, indem der Zähler und der Nenner durch ihren größten gemeinsamen Teiler (GGT) geteilt werden.
- Die Klasse soll die magische Methode
__str__
implementieren, die einen String der Form<numerator> / <denominator>
in der einfachsten Form zurückgibt.
Eingabe | Ausgabe |
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