【題目敘述】https://zerojudge.tw/ShowProblem?problemid=a453
- 一元二次方程式的兩個解:
- 判斷式 d = b*b – 4*a*c
- d < 0:虛根 (無理數)
- d = 0:兩個解為重根 (有理數)
- sq = (int) sqrt(d) 開根號取整。sq * sq = d (完全平方數):兩個解非重根 (有理數)
#include <iostream>
#include <cmath>
using namespace std;
int m, a, b, c, d;
int main() {
cin >> m;
while (m--){
cin >> a >> b >> c;
d = b*b - 4*a*c;
if (b < 0) cout << "No\n";
else if (b == 0) cout << "Yes\n";
else{
int sq = sqrt(d);
if (sq * sq == d) cout << "Yes\n";
else cout << "No\n";
}
}
}