1. 程式人生 > 其它 >Python:6-1 設計一元二次方程求解類(高教社,《Python程式設計基礎及應用》習題9-4) (4分)

Python:6-1 設計一元二次方程求解類(高教社,《Python程式設計基礎及應用》習題9-4) (4分)

技術標籤:PTA習題答案--Python

設計一個類Root來計算ax2+bx+c=0的根。該類包括:a、b、c共3個屬性表示方程的3個係數,getDiscriminant()方法返回b2-4ac, getRoot1()和getRoot2()返回方程的兩個根。
其中,getRoot1()返回的根對應: x1.png
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)