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