#python一元二次方程求解
# bglei@nuaa.edu.cn 2022年5月11日
import math
z=input('输入一元二次方程系数:').split()
a,b,c=float(z[0]),float(z[1]),float(z[2])
if b**2==4*a*c:
x= (-b + math.sqrt(b*b-4*a*c))/(2*a)
print('x1=x2=%.5f' %x)
elif b**2>4*a*c:
print('x1=%.5f;x2=%.5f' %((-b + math.sqrt(b*b-4*a*c))/(2*a),(-b - math.sqrt(b*b-4*a*c))/(2*a)))
else:
re= -b / (2*a)
if abs(re-0)<0.000001:
re=0.00000
im=math.sqrt(4*a*c-b*b) / (2*a)
print('x1=%.5f+%.5fi;x2=%.5f-%.5fi' %(re,im,re,im))
运行示例:
输入一元二次方程系数:1 3 4
x1=-1.50000+1.32288i;x2=-1.50000-1.32288i