Python:6-1 設計一元二次方程求解類(高教社,《Python程式設計基礎及應用》習題9-4) (4分)
阿新 • • 發佈:2020-12-20
技術標籤:PTA習題答案--Python
設計一個類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):
return (-self.b + math.sqrt(self.getDiscriminant())) / (2 * self.a)
def getRoot2 (self):
return (-self.b - math.sqrt(self.getDiscriminant())) / (2 * self.a)