【題解】ZeroJudge a453: TOI2010 第一題:一元二次方程式

【題目敘述】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";
        }
    }
}
分享本文 Share with friends