python 求ax2+bx+c=0方程的实根。a,b,c由键盘输入. 解方程要考虑系数a等于零的情况。a等于零有两种情况(b==0,b!=0),a不等于零有三种情况(delta>0、==0、<0),先计算得到根x1、x2,再输出 输入格式: 一行包含三个整数a,b,c。空格分隔 输出格式: 输出方程的实根(保留两位小数),如果方程有1个实根,则输出一个根;如果方程有2个不等实根,则一起输出(使用空格分开),先输出较大根,后输出较小根。 其余情况(如无实根等)则输出No。 输入样例: 1 -3 2输出样例: 2.00 1.00
时间: 2023-05-20 13:02:30 浏览: 130
用来输入两个整数a,b,计算出方程ax+b=0的解
根据一元二次方程的求根公式,当系数a不等于零时,方程的实根为:
x1 = (-b + sqrt(delta)) / (2*a)
x2 = (-b - sqrt(delta)) / (2*a)
其中,delta = b^2 - 4*a*c,如果delta小于零,则方程无实根;如果delta等于零,则方程有一个实根;如果delta大于零,则方程有两个不等实根。
当系数a等于零时,如果系数b也等于零,则方程无解;如果系数b不等于零,则方程有一个实根,即x = -c/b。
下面是实现该功能的Python代码:
a, b, c = map(int, input().split())
if a == 0:
if b == 0:
print("No")
else:
x = -c / b
print("{:.2f}".format(x))
else:
delta = b**2 - 4*a*c
if delta < 0:
print("No")
elif delta == 0:
x = -b / (2*a)
print("{:.2f}".format(x))
else:
x1 = (-b + delta**0.5) / (2*a)
x2 = (-b - delta**0.5) / (2*a)
print("{:.2f} {:.2f}".format(max(x1, x2), min(x1, x2)))
输出结果为:
1 -3 2
2.00 1.00
注意,这里使用了字符串格式化函数format来保留两位小数。
阅读全文