一元二次方程求解器 - 在线计算实数解
本程序用于求解一元二次方程 ax² + bx + c = 0 的实数解。
请在以下三行输入 a、b、c 的值:
- a 的值:
- b 的值:
- c 的值:
输入格式
输入三行数据, 每行输入一个实数内容。
输入样例
2 5 -3
输出样例
x1=-3.00,x2=0.50
程序逻辑
- 如果 a 值为 0,根据 b 值判断方程是否有解并输出。如果 a 与 b 同时为 0,则输出 'Data error!'。
- 如果方程无实数解,输出 '该方程无实数解'。
- 如果方程有两个相同的实数解,输出一个解,结果保留两位小数。
- 如果方程有两个不同的实数解,在一行内按从大到小顺序输出方程的两个解,用空格分隔,结果保留两位小数。
代码实现
a = float(input("1. a 的值:"))
b = float(input("2. b 的值:"))
c = float(input("3. c 的值:"))
if a == 0:
if b == 0:
print('Data error!')
else:
x = -c / b
print(f'x = {x:.2f}')
else:
delta = b ** 2 - 4 * a * c
if delta < 0:
print('该方程无实数解')
elif delta == 0:
x = (-b + delta ** 0.5) / (2 * a)
print(f'x = {x:.2f}')
else:
x1 = (-b + delta ** 0.5) / (2 * a)
x2 = (-b - delta ** 0.5) / (2 * a)
if x1 > x2:
print(f'x1 = {x1:.2f}, x2 = {x2:.2f}')
else:
print(f'x1 = {x2:.2f}, x2 = {x1:.2f}')
原文地址: https://www.cveoy.top/t/topic/oGIg 著作权归作者所有。请勿转载和采集!