Python練習題-TQC+(506)-一元二次方程式

讓使用者輸入三個數字(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 - 關於我 - 意如