设计一个类Root来计算ax2+bx+c=0的根。该类包括:a、b、c共3个属性表示方程的3个系数,getDiscriminant()方法返回b2-4ac, getRoot1()和getRoot2()返回方程的两个根。
其中,getRoot1()返回的根对应:
getRoot2()返回的根对应:
类接口定义:
class Root: def __init__(self,a,b,c): ...
裁判测试程序样例:
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
import math 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): if self.getDiscriminant() < 0: return "No Root!" else: root1 = (-self.b + math.sqrt(self.getDiscriminant())) / (2 * self.a) return root1 def getRoot2(self): if self.getDiscriminant() < 0: return "No Root!" else: root2 = (-self.b - math.sqrt(self.getDiscriminant())) / (2 * self.a) return root2