讓使用者輸入三個數字(a,b,c,代表一元二次方程式 ax2+bx+c=0的三個係數)
傳遞給一個名為 compute()的函式, 該函式回傳方程式的解,
無解輸出 [Your equation has no root]
要先了解一元二次方程式 的公式 :
ax2+bx+c=0
然後判斷 q= b2-4ac
是否有解
如果
q < 0 無解
傳回 Your equation has no root
q == 0 只有一組解
傳回 output=-b/2*a
q > 0 有兩組解
q1=(-b+d**0.5)/(2*a)
q2=(-b-d**0.5)/(2*a)
傳回組合結果output=q1+", "+q2
最後顯示 結果1+", "+結果2
1. 題目說明:
請開啟PYD506.py檔案,依下列題意進行作答,依使用者輸入的數字作為參數傳遞進行公式計算,使輸出值符合題意要求。作答完成請另存新檔為PYA506.py再進行評分。
2. 設計說明:
請撰寫一程式,將使用者輸入的三個整數(代表一元二次方程式 ax2+bx+c=0 的三個係數a、b、c)作為參數傳遞給一個名為compute()的函式,該函式回傳方程式的解,如無解則輸出【Your equation has no root.】
提示:輸出有順序性
3. 輸入輸出:
輸入說明
三個整數,分別為a、b、c
輸出說明
代入一元二次方程式,回傳方程式解;如無解則輸出【Your equation has no root.】
輸入輸出範例
範例輸入1
2
-3
1
範例輸出1
1.0, 0.5
範例輸入2
9
9
8
範例輸出2
Your equation has no root.
解題技巧:
一元二次方程式 的公式 : ax2+bx+c=0
然後判斷 q= b2-4ac 是否有解
如果
q < 0 無解
傳回 Your equation has no root
q == 0 只有一組解
傳回 output = -b/2*a
q > 0 有兩組解
q1=(-b+q**0.5)/(2*a)
q2=(-b-q**0.5)/(2*a)
傳回組合結果output=q1+", "+q2
最後顯示 結果1+", "+結果2
參考解答:
def compute(a,b,c):
q=b**2-4*a*c
if q<0:
output="Your equation has no root."
elif q==0:
output=-b/2*a
else:
q1=(-b+q**0.5)/(2*a)
q2=(-b-q**0.5)/(2*a)
output='{}, {}'.format(q1, q2)
return output
a=eval(input())
b=eval(input())
c=eval(input())
print(compute(a,b,c))
Yiru@Studio - 關於我 - 意如