You are viewing a single comment's thread. Return to all comments →
import math class Complex(object): def init(self, real, imaginary): self.real = real self.imaginary = imaginary
def __add__(self, no): real = self.real + no.real imaginary = self.imaginary + no.imaginary return Complex(real,imaginary) def __sub__(self, no): real = self.real - no.real imaginary = self.imaginary - no.imaginary return Complex(real,imaginary) def __mul__(self, no): real = (self.real*no.real - self.imaginary*no.imaginary) imaginary = (self.real*no.imaginary + self.imaginary*no.real) return Complex(real,imaginary) def __truediv__(self, no): try: real = (self.real*no.real + self.imaginary*no.imaginary)/((no.real)**2 + (no.imaginary)**2) imaginary = (self.imaginary*no.real - self.real*no.imaginary)/((no.real)**2 + (no.imaginary)**2) return Complex(real,imaginary) except ZeroDivisionError as e: return e def mod(self): return Complex(math.sqrt(self.real**2 + self.imaginary**2),0) def __str__(self): if self.imaginary == 0: result = "%.2f+0.00i" % (self.real) elif self.real == 0: if self.imaginary >= 0: result = "0.00+%.2fi" % (self.imaginary) else: result = "0.00-%.2fi" % (abs(self.imaginary)) elif self.imaginary > 0: result = "%.2f+%.2fi" % (self.real, self.imaginary) else: result = "%.2f-%.2fi" % (self.real, abs(self.imaginary)) return result
Seems like cookies are disabled on this browser, please enable them to open this website
An unexpected error occurred. Please try reloading the page. If problem persists, please contact support@hackerrank.com
Classes: Dealing with Complex Numbers
You are viewing a single comment's thread. Return to all comments →
import math class Complex(object): def init(self, real, imaginary): self.real = real self.imaginary = imaginary