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 den denominator (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

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