Clase ComplexNumber

Se te pide crear una clase ComplexNumber que encapsule el comportamiento de un número complejo. Un número complejo es un número que puede expresarse en la forma a + bi, donde a y b son números reales, e i es una solución de la ecuación . Como ningún número real satisface esta ecuación, i se denomina número imaginario ().
Tu clase ComplexNumber debe tener los siguientes atributos:
  • real: La parte real del número complejo (a)
  • imaginary: La parte imaginaria del número complejo (b)
Debes implementar estos métodos mágicos:
  • __add__: Este método debe sumar dos números complejos y devolver un nuevo objeto ComplexNumber que representa el resultado: .
  • __sub__: Este método debe restar un número complejo de otro y devolver un nuevo objeto ComplexNumber que representa el resultado: .
  • __mul__: Este método debe multiplicar dos números complejos y devolver un nuevo objeto ComplexNumber que representa el resultado: .
  • __truediv__: Este método debe dividir un número complejo por otro y devolver un nuevo objeto ComplexNumber que representa el resultado: .
Además de los métodos mágicos numéricos, también debes implementar un método __str__ que devuelva el número complejo como <real> + <imaginary> i.
Entrada
Salida
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