RationalNumberクラス

あなたの課題は、PythonでRationalNumberクラスを定義することです。このクラスは、有理数、つまり2つの整数(分子と分母)の商で表される数を表現するために使用します。
RationalNumberクラスは、以下の特徴を持つ必要があります:
  • クラスは、有理数のnumerator(分子)とdenominator(分母)という2つのプライベートな整数属性を持ちます。
  • クラスは、2つの有理数を加算、減算、乗算、除算するために、マジックメソッドの__add____sub____mul____truediv__をそれぞれ定義します。
  • 加算、減算、乗算、除算の各演算は、有理数に対して数学的に正確に行われ、結果は別のRationalNumberインスタンスとなるべきです。
  • クラスは、分子と分母をその最大公約数(GCD)で割ることで、有理数を既約分数に簡約化します。
  • クラスは、既約分数の形式で<numerator> / <denominator>という文字列を返す__str__マジックメソッドを実装します。
入力
出力
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: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

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