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