任务描述
一元二次方程ax2+bx+c=0,a、b、c的值由用户在三行中输入,根据用户输入的数值求解方程的实数解:
如果a值 为0,根据b值判断方程是否有解并输出,如果a与b同时为0,则输出Data error!
如果方程无实数解,输出“该方程无实数解”;
如果方程有两个相同的实数解,输出一个解,结果保留2位小数;
如果方程有两个不同的实数解,在一行内按从大到小顺序输出方程的两个解,用空格分隔,结果保留2位小数。
输入格式
输入三行数据, 每行输入一个实数
输出格式
方程的解
示例 1
输入: 8 5 2
输出: 该方程无实数解
示例 2
输入: 0 0 9
输出: Data error!
import math
a = int(input())
b = int(input())
c = int(input())
if a == 0:
if b != 0:
print(f'{- c / b :.2f}')
else:
print('Data error!')
else:
if b * b - 4 * a * c == 0:
print( f'{(- b / (2 * a)):.2f}')
elif b * b - 4 * a * c < 0:
print('该方程无实数解')
elif b * b - 4 * a * c > 0:
result1 = (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a)
result2 = (-b - math.sqrt(b * b - 4 * a * c)) / (2 * a)
#根据解的大小排序
if result1 >= result2:
print(f'{result1:.2f} {result2:.2f}')
else:
print(f'{result2:.2f} {result1:.2f}')