本题要求编写程序,计算2个复数的和、差、积、商。
输入在一行中按照a1 b1 a2 b2
的格式给出2个复数C1=a1+b1i
和C2=a2+b2i
的实部和虚部。题目保证C2不为0。
分别在4行中按照(a1+b1i) 运算符 (a2+b2i) = 结果
的格式顺序输出2个复数的和、差、积、商,数字精确到小数点后1位。如果结果的实部或者虚部为0,则不输出。如果结果为0,则输出0.0。
a1,b1,a2,b2 = map(float,input().split())
a,b = complex(a1,b1),complex(a2,b2) #转化为复数
r1,i1 = round(a.real,1),round(a.imag,1)
r2,i2 = round(b.real,1),round(b.imag,1)
if i1 >= 0: #非负数前面应有‘+’号
i1 = '+' + str(i1)
if i2 >= 0:
i2 = '+' + str(i2)
def f(c):
c1,c2 = round(c.real,1),round(c.imag,1)
if c1 == 0 and c2 == 0: #实部和虚部都为0
print("0.0")
elif c1 == 0: #只有实部为0
print(f"{c2}i")
elif c2 == 0: #只有虚部为0
print(c1)
else:
if c2>0: #虚部大于0,其前面应有‘+’号
print(f"{c1}+{c2}i")
else:
print(f"{c1}{c2}i")
print(f"({r1}{i1}i) + ({r2}{i2}i) = ",end='') #按格式输出
f(a+b)
print(f"({r1}{i1}i) - ({r2}{i2}i) = ",end='')
f(a-b)
print(f"({r1}{i1}i) * ({r2}{i2}i) = ",end='')
f(a*b)
print(f"({r1}{i1}i) / ({r2}{i2}i) = ",end='')
f(a/b)