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