您当前的位置: 首页 >  Xavier Jiezou Python

【Python】编程练习:一元二次方程求根

Xavier Jiezou 发布时间:2021-11-03 20:47:43 ,浏览量:5

文章目录

  • 题目描述
  • 输入格式
  • 输出格式
  • 测试样例
    • 样例1
      • 输入
      • 输出
    • 样例2
      • 输入
      • 输出
    • 样例3
      • 输入
      • 输出
  • 参考代码

题目描述

一元二次方程 a x 2 + b x + c = 0 ax^2+bx+c=0 ax2+bx+c=0,a、b、c 的值由用户在三行中输入,根据用户输入的数值求解方程的实数解:

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

输入格式

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

输出格式

方程的解。

测试样例

样例1

输入

8
5
2

输出

该方程无实数解

样例2

输入

0
0
9

输出

Data error!

样例3

输入

3
6
2

输出

-0.42 -1.58

参考代码

class Solution:
    def __init__(self):
        self.a = eval(input())
        self.b = eval(input())
        self.c = eval(input())

    def __main__(self) -> str:
        d = self.b**2-4*self.a*self.c
        if self.a == 0 and self.b == 0:
            return 'Data error!'
        elif self.a == 0 and self.b != 0:
            return f'{-self.c/self.b:.2f}'
        else:
            if d > 0:
                x1 = (-self.b+d**0.5)/(2*self.a)
                x2 = (-self.b-d**0.5)/(2*self.a)
                x1, x2 = (x2, x1) if x1             
关注
打赏
查看更多评论