We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
class Complex:
def init(self, real, imaginary):
self.real = real
self.imaginary = imaginary
def __add__(self, other):
""" Addition of two complex numbers """
return Complex(self.real + other.real, self.imaginary + other.imaginary)
def __sub__(self, other):
""" Subtraction of two complex numbers """
return Complex(self.real - other.real, self.imaginary - other.imaginary)
def __mul__(self, other):
""" Multiplication of two complex numbers """
real_part = self.real * other.real - self.imaginary * other.imaginary
imaginary_part = self.real * other.imaginary + self.imaginary * other.real
return Complex(real_part, imaginary_part)
def __truediv__(self, other):
""" Division of two complex numbers """
denominator = other.real**2 + other.imaginary**2
if denominator == 0:
raise ZeroDivisionError("Complex division by zero")
# Multiply the numerator (self) by the conjugate of the denominator
conjugate = Complex(other.real, -other.imaginary)
numerator = self * conjugate
real_part = numerator.real / denominator
imaginary_part = numerator.imaginary / denominator
return Complex(real_part, imaginary_part)
def mod(self):
""" Modulus (magnitude) of the complex number """
return Complex(math.sqrt(self.real**2 + self.imaginary**2), 0)
def __str__(self):
""" String representation of the complex number in the format X.XX+Y.YYi """
if self.imaginary == 0:
return f"{self.real:.2f}+0.00i"
elif self.real == 0:
return f"0.00{'+' if self.imaginary >= 0 else '-'}{abs(self.imaginary):.2f}i"
else:
return f"{self.real:.2f}{'+' if self.imaginary >= 0 else '-'}{abs(self.imaginary):.2f}i"
if name == 'main':
c = map(float, input().split())
d = map(float, input().split())
x = Complex(*c)
y = Complex(*d)
print(*map(str, [x+y, x-y, x*y, x/y, x.mod(), y.mod()]), sep='\n')
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Classes: Dealing with Complex Numbers
You are viewing a single comment's thread. Return to all comments →
import math
class Complex: def init(self, real, imaginary): self.real = real self.imaginary = imaginary
if name == 'main': c = map(float, input().split()) d = map(float, input().split()) x = Complex(*c) y = Complex(*d) print(*map(str, [x+y, x-y, x*y, x/y, x.mod(), y.mod()]), sep='\n')