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

计算一元二次方程

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 出现呢?——如何解决呢?

全部评论
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
因为此时b为0,但是(-b)后把b变成了-0,我开始也有这个问题,所以你要把b的正负单独来讨论
点赞 回复 分享
发布于 2022-03-12 11:00
我也有这个问题,不知道怎么解决
点赞 回复 分享
发布于 2022-02-21 17:02

相关推荐

ohs的小木屋:比不少实习待遇高了
点赞 评论 收藏
分享
想按时下班的我在等o...:我投测试也是这个情况,不知道咋办了
点赞 评论 收藏
分享
05-25 10:45
门头沟学院 Java
Frank_zhan...:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务