Skip to content

Commit fabae97

Browse files
authored
Merge pull request arsho#50 from imtiazpy/update-version
updated and modified two solution under classes subdomain
2 parents 0b4cbb2 + 4e1582e commit fabae97

File tree

2 files changed

+48
-50
lines changed

2 files changed

+48
-50
lines changed

Classes/Class2FindtheTorsionalAngle.py

+2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
Subdomain : Classes
77
Domain : Python
88
Author : Ahmedur Rahman Shovon
9+
Updater : Imtiaz Ahmed
910
Created : 15 July 2016
11+
Updated : 30 August 2022
1012
Problem : https://www.hackerrank.com/challenges/class-2-find-the-torsional-angle/problem
1113
'''
1214

Classes/ClassesDealingwithComplexNumbers.py

+46-50
Original file line numberDiff line numberDiff line change
@@ -3,57 +3,53 @@
33
Subdomain : Classes
44
Domain : Python
55
Author : Ahmedur Rahman Shovon
6+
Updater : Imtiaz Ahmed
67
Created : 15 July 2016
8+
Updated : 30 August 2022
79
Problem : https://www.hackerrank.com/challenges/class-1-dealing-with-complex-numbers/problem
810
'''
9-
# Enter your code here. Read input from STDIN. Print output to
10-
11-
12-
c_str_ar=raw_input().strip().split()
13-
d_str_ar=raw_input().strip().split()
14-
15-
def custom_print(n):
16-
r=n.real
17-
i=n.imag
18-
ret_str=""
19-
if(i==0 and r==0):
20-
ret_str="0.00"
21-
elif(r==0):
22-
tmp_str="%.2f" %i
23-
ret_str=tmp_str+"i"
24-
elif(i==0):
25-
tmp_str="%.2f" %r
26-
ret_str=tmp_str
27-
else:
28-
tmp_str1="%.2f" %r
29-
tmp_str2="%.2f" %i
30-
if(i>0):
31-
ret_str=tmp_str1+" + "+tmp_str2+"i"
11+
import math
12+
13+
14+
15+
class Complex():
16+
def __init__(self, real, imaginary):
17+
self.real = real
18+
self.imaginary = imaginary
19+
20+
def __add__(self, no):
21+
return Complex(self.real + no.real, self.imaginary + no.imaginary)
22+
23+
def __sub__(self, no):
24+
return Complex(self.real - no.real, self.imaginary - no.imaginary)
25+
26+
def __mul__(self, no):
27+
return Complex(self.real * no.real - self.imaginary * no.imaginary, self.real * no.imaginary + self.imaginary * no.real)
28+
29+
def __truediv__(self, no):
30+
divider = no.real ** 2 + no.imaginary ** 2
31+
return Complex((self.real * no.real + self.imaginary * no.imaginary)/divider, (self.imaginary * no.real - self.real * no.imaginary)/divider)
32+
33+
def mod(self):
34+
return Complex(math.sqrt(self.real ** 2 + self.imaginary ** 2), 0.00)
35+
36+
def __str__(self):
37+
if self.imaginary == 0:
38+
result = "%.2f+0.00i" % (self.real)
39+
elif self.real == 0:
40+
if self.imaginary >= 0:
41+
result = "0.00+%.2fi" % (self.imaginary)
42+
else:
43+
result = "0.00-%.2fi" % (abs(self.imaginary))
44+
elif self.imaginary > 0:
45+
result = "%.2f+%.2fi" % (self.real, self.imaginary)
3246
else:
33-
i=i*-1
34-
tmp_str2="%.2f" %i
35-
ret_str=tmp_str1+" - "+tmp_str2+"i"
36-
print ret_str
37-
38-
cr=float(c_str_ar[0])
39-
ci=float(c_str_ar[1])
40-
dr=float(d_str_ar[0])
41-
di=float(d_str_ar[1])
42-
c=complex(cr,ci)
43-
d=complex(dr,di)
44-
45-
val_add=c+d
46-
val_sub=c-d
47-
val_mul=c*d
48-
val_div=c/d
49-
mod_c=abs(c)
50-
mod_d=abs(d)
51-
52-
custom_print(val_add)
53-
custom_print(val_sub)
54-
custom_print(val_mul)
55-
custom_print(val_div)
56-
57-
58-
print "%.2f" %mod_c
59-
print "%.2f" %mod_d
47+
result = "%.2f-%.2fi" % (self.real, abs(self.imaginary))
48+
return result
49+
50+
if __name__ == '__main__':
51+
c = map(float, input().split())
52+
d = map(float, input().split())
53+
x = Complex(*c)
54+
y = Complex(*d)
55+
print(*map(str, [x+y, x-y, x*y, x/y, x.mod(), y.mod()]), sep='\n')

0 commit comments

Comments
 (0)