ComplexNumber クラス

あなたは、複素数の動作をカプセル化する ComplexNumber クラスを作成するよう求められています。複素数は、a + bi の形で表すことができ、ここで ab は実数、i は方程式 の解です。この方程式を満たす実数は存在しないため、i は虚数()と呼ばれます。

あなたの ComplexNumber クラスは以下の属性を持たなければなりません:

  • real: 複素数の実部(a

  • imaginary: 複素数の虚部(b

以下のマジックメソッドを実装してください:

  • __add__: 2つの複素数を加算し、その結果を表す新しい ComplexNumber オブジェクトを返します:

  • __sub__: 1つの複素数から別の複素数を減算し、その結果を表す新しい ComplexNumber オブジェクトを返します:

  • __mul__: 2つの複素数を乗算し、その結果を表す新しい ComplexNumber オブジェクトを返します:

  • __truediv__: 1つの複素数を別の複素数で除算し、その結果を表す新しい ComplexNumber オブジェクトを返します:

$$\frac{a1 \cdot a2 + b1 \cdot b2}{a2^2 + b2^2} + \frac{b1 \cdot a2 - a1 \cdot b2}{a2^2 + b2^2} i$$。

入力

出力

print(ComplexNumber(1, 1) + ComplexNumber(2, 2)); print(ComplexNumber(2, 3) - ComplexNumber(1, 1)); print(ComplexNumber(2, 3) * ComplexNumber(1, 1)); print(ComplexNumber(2, 2) / ComplexNumber(1, 1)); print(ComplexNumber(1, 1) - ComplexNumber(2, 3))

3 + 3 i
1 + 2 i
-1 + 5 i
2.0 + 0.0 i
-1 + -2 i

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