设计一个类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