题解 | #计算一元二次方程#

计算一元二次方程

http://www.nowcoder.com/practice/7da524bb452441b2af7e64545c38dc26

import math
a,b,c=map(float,input().split())
data=b**2-4*a*c
x=-1*b/(2*a)
kai_d=math.sqrt(data)

q1=(-1*b-kai_d)/(2*a)
q2=(-1*b+kai_d)/(2*a)
if a==0.0:
    print("Not quadratic equation")
elif data==0:
    print("x1=x2={:0.2f}".format(round(x,2)))
elif data>0:
    print("x1={};x2={}".format(round(q1,2),round(q2,2)))
else:
    xubu=math.sqrt(-1*data)/(2*a)
    print("x1={}-{}i;x2={}+{}i".format(x,xubu,x,xubu))

??为啥0.00 的时候会有 -0.00 出现呢?——如何解决呢?

全部评论
我也有这个问题,不知道怎么解决
点赞 回复 分享
发布于 2022-02-21 17:02
因为此时b为0,但是(-b)后把b变成了-0,我开始也有这个问题,所以你要把b的正负单独来讨论
点赞 回复 分享
发布于 2022-03-12 11:00
import math while True: try: a,b,c=map(float,input().split(' ')) derta=b*b-4*a*c x1=x2=0 if a != 0: if derta == 0: if b == 0: x1 = x2 = 0 else: x1 = x2 = -b / (2 * a) print('x1=x2=%0.2f' % x1) elif derta > 0: x1 = ((-b) - math.sqrt(derta)) / (2 * a) x2 = ((-b) + math.sqrt(derta)) / (2 * a) print('x1=%0.2f;x2=%0.2f' % (x1, x2)) else: if b == 0: real = b / (2 * a) else: real = (-b) / (2 * a) image = math.sqrt(-derta) / (2 * a) print('x1=%0.2f-%0.2fi;x2=%0.2f+%0.2fi' % (real, image, real, image)) else: print('Not quadratic equation') except: break
点赞 回复 分享
发布于 2022-03-12 11:00

相关推荐

02-01 19:48
门头沟学院 Java
神哥了不得:(非引流)直接暑期吧,没时间日常了,老鱼简历把水印去了,或者换个模板,简历字体大小都不太行,建议换2个高质量的项目,面试应该还会再多一些
点赞 评论 收藏
分享
学不完不睡觉11:一眼点评,不过,看运气吧
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务