Python-一元二次方程,保留两位小数

这篇文章发布已经超过两年,部分工具、版本或观点可能已经变化,请结合最新信息判断。

【问题描述】一元二次方程:ax2+bx+c=0 (a ╪ 0)
【输入形式】输入a、b和c的值(有理数)
【输出形式】输出x的两个值,或者No(即没有有理数的解)
【样例输入】1 2.5 3
【样例输出】No
【样例输入】1 -2 1
【样例输出】1.00 1.00

【样例输出说明】输出的两个解保留两位小数,大的在前。

s = input()
numLst = s.split(' ')
resultLst = map(float,numLst)
a,b,c = resultLst

import math
delta = b**2-4*a*c
if delta < 0:
    print('No')
else:
    x1 = (-b+math.sqrt(delta))/(2*a)
    x2 = (-b-math.sqrt(delta))/(2*a)
    if x1 > x2:
        print("%.2f" % x1,"%.2f" % x2)
    else:
        print("%.2f" % x2,"%.2f" % x1)
评论区已延迟加载滑到评论区附近时会自动加载,也可以现在手动打开。