歡迎加入我的 Discord 群組與我討論程式相關的問題!

Posted on 

 by 

 in 

Zerojudge a006. 一元二次方程式

評分:1 分,滿分為 5。

題目連結

題意

給一個一元二次方程式的 a, b, c。求 ax^2+bx+c=0 的根。(題目有保證根都會是整數)

解題方法

利用 <cmath> 函式庫裡的 sqrt() 來套公式
b^2 – 4ac = 0 一個根
b^2 – 4ac > 0 兩個根
b^2 – 4ac < 0 沒有實數解

這題要注意運算時候的先乘除後加減喔,要注意運算順序。

* 我們 include <bits/stdc++.h> 裡面就有包含 cmath 了
bits/stdc++.h 包含了目前c++所有標準函式庫

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a, b, c;
    cin >> a >> b >> c;
    int discriminant = b * b - 4 * a * c;
    int x1 = (-b + sqrt(discriminant)) / (2 * a); 
    int x2 = (-b - sqrt(discriminant)) / (2 * a);
    if(discriminant == 0) {
        cout << "Two same roots x=" << x1 << '\n';
    } else if(discriminant > 0){
        cout<< "Two different roots x1=" << x1 << " , x2=" << x2 << '\n';
    } else {
        cout << "No real root\n";
    }
}

如果不懂這份程式碼的同學,可以到以下的連結看我的教學

圖片來源:https://www.istockphoto.com/vector/quadratic-equation-gm1292243665-387104719

發表迴響

Blog at WordPress.com.

探索更多來自 Coding Prep 演算法資料結構教學 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading