本程序用于求解一元二次方程 ax² + bx + c = 0 的实数解。

请在以下三行输入 a、b、c 的值:

  1. a 的值:
  2. b 的值:
  3. c 的值:

输入格式

输入三行数据, 每行输入一个实数内容。

输入样例

2 5 -3

输出样例

x1=-3.00,x2=0.50

程序逻辑

  1. 如果 a 值为 0,根据 b 值判断方程是否有解并输出。如果 a 与 b 同时为 0,则输出 'Data error!'。
  2. 如果方程无实数解,输出 '该方程无实数解'。
  3. 如果方程有两个相同的实数解,输出一个解,结果保留两位小数。
  4. 如果方程有两个不同的实数解,在一行内按从大到小顺序输出方程的两个解,用空格分隔,结果保留两位小数。

代码实现

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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录