【问题描述】 设计一个类Root来计算ax2+bx+c=0的根。该类包括:a、b、c共3个属性表示方程的3个系数,getDiscriminant()方法返回b2-4ac, getRoot1()和getRoot2()返回方程的两个根。 其中,getRoot1()返回的根对应: x1.png getRoot2()返回的根对应: x2.png 类接口定义: class Root: def __init__(self,a,b,c): ... 【样例输入】 2.1 10.2 3.0 【样例输出】 -0.31 -4.54 from math import * a=float(input()) b=float(input()) c=float(input()) root=Root(a,b,c) if root.getDiscriminant()>0: print("{:.2f}".format(root.getRoot1())) print("{:.2f}".format(root.getRoot2())) elif root.getDiscriminant()==0: print("{:.2f}".format(root.getRoot1())) else: print("No Root!")
时间: 2024-03-24 16:37:43 浏览: 160
以下是完整的代码实现,包括Root类的定义和样例代码:
```python
from math import *
class Root:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def getDiscriminant(self):
return self.b ** 2 - 4 * self.a * self.c
def getRoot1(self):
discriminant = self.getDiscriminant()
if discriminant >= 0:
return (-self.b + sqrt(discriminant)) / (2 * self.a)
else:
return 0
def getRoot2(self):
discriminant = self.getDiscriminant()
if discriminant > 0:
return (-self.b - sqrt(discriminant)) / (2 * self.a)
else:
return 0
a = float(input())
b = float(input())
c = float(input())
root = Root(a, b, c)
if root.getDiscriminant() > 0:
print("{:.2f}".format(root.getRoot1()))
print("{:.2f}".format(root.getRoot2()))
elif root.getDiscriminant() == 0:
print("{:.2f}".format(root.getRoot1()))
else:
print("No Root!")
```
输入样例:
```
2.1
10.2
3.0
```
输出样例:
```
-0.31
-4.54
```
阅读全文