題意
給一個一元二次方程式的 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
發表迴響