Classe ComplexNumber

É pedido que crie uma classe ComplexNumber que encapsule o comportamento de um número complexo. Um número complexo é um número que pode ser expresso na forma a + bi, onde a e b são números reais, e i é uma solução da equação . Como nenhum número real satisfaz esta equação, i é chamado de número imaginário ().

A sua classe ComplexNumber deve ter os seguintes atributos:

  • real: A parte real do número complexo (a)

  • imaginary: A parte imaginária do número complexo (b)

Tem de implementar estes métodos mágicos:

  • __add__: Este método deve somar dois números complexos e retornar um novo objeto ComplexNumber que representa o resultado: .

  • __sub__: Este método deve subtrair um número complexo de outro e retornar um novo objeto ComplexNumber que representa o resultado: .

  • __mul__: Este método deve multiplicar dois números complexos e retornar um novo objeto ComplexNumber que representa o resultado: .

  • __truediv__: Este método deve dividir um número complexo por outro e retornar um novo objeto ComplexNumber que representa o resultado: .

Além dos métodos mágicos numéricos, deve também implementar um método mágico __str__ que retorna o número complexo como <real> + <imaginary> i.

Entrada

Saída

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