DK07 - Giải phương trình

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Viết chương trình giải phương trình có dạng tổng quát: ~ax^2 + bx + c = 0~.

Input

3 số nguyên ~ a, b, c ~ lần lượt là hệ số của phương trình ~ax^2 + bx + c = 0~

Giới hạn:

  • ~-1000 \le a, b, c \le 1000~

Output

  • Nếu phương trình vô nghiệm, in ra NO
  • Nếu phương trình có vô số nghiệm, in ra WOW
  • Nếu phương trình có nghiệm, in ra các nghiệm đã làm tròn đến chữ số thập phân thứ 2, theo thứ tự tăng dần và ngăn cách nhau bởi 1 dấu cách.

Sample

Input #1
1 2 -3
Output #1
-3.00 1.00

Bình luận

Please read the guidelines before commenting.



  • 0
    lephuochauhungvuong  đã bình luận lúc 25, Tháng 4, 2026, 14:46
    #include <bits/stdc++.h>
    using namespace std;
    float a,b,c,tmp,x1,x2;
    int main(){
        cin>>a>>b>>c;
        if(a==0){
            if(b==0){
                if (c==0)
                    cout<<"WOW";
                else
                    cout<<"NO";
            }
            else
                cout<<-c/b<<endl;
        }
        else{
            tmp=b*b-4*a*c;
            if(tmp > 0){
                x1=(-b+sqrt(tmp))/(2*a);
                x2=(-b-sqrt(tmp))/(2*a);
                cout.precision(2);
                cout<<fixed<<x2<<' ';
                cout<<fixed<<x1;
            }
            else if (tmp==0)
                cout <<-b/2*a <<' ';
            else
                cout << "NO";
        }
    }
    

  • 0
    PPw  đã bình luận lúc 21, Tháng 1, 2026, 10:01

    include <iostream>

    include <iomanip>

    include <cmath>

    using namespace std; int main() { int a, b, c; cin >> a >> b >> c; if (a == 0) { if (b == 0 && c == 0) cout << "WOW"; else if (b == 0 && c != 0) cout << "NO"; else cout << float(-c) / b; } if (a != 0) { long delta = (b * b) - (4 * a * c); if (delta < 0) cout << "NO"; else if (delta == 0) cout << float(-b) / (2 * a); else if (delta > 0) { float x = (float(-b) + sqrt(delta)) / (2 * a); float y = (float(-b) - sqrt(delta)) / (2 * a); if (x >= y) cout << fixed << setprecision(2) << y << " " << x; else cout << fixed << setprecision(2) << x << " " << y; } } }


  • 0
    1239876  đã bình luận lúc 19, Tháng 1, 2026, 8:41

    full ac: xin vote

    include <bits/stdc++.h>

    using namespace std;

    int main() { double a, b, c; cin >> a >> b >> c;

    const double EPS = 1e-9;
    cout << fixed << setprecision(2);
    
    if (fabs(a) < EPS) {
        if (fabs(b) < EPS) {
            if (fabs(c) < EPS)
                cout << "WOW";
            else
                cout << "NO";
        } else {
            cout << -c / b;
        }
    } 
    else {
        double delta = b*b - 4*a*c;
    
        if (delta > EPS) {
            double x1 = (-b - sqrt(delta)) / (2*a);
            double x2 = (-b + sqrt(delta)) / (2*a);
            if (x1 > x2) swap(x1, x2);
            cout << x1 << " " << x2;
        }
        else if (fabs(delta) < EPS) {
            double x = -b / (2*a);
            cout << x;          // ⚠️ CHỈ IN 1 NGHIỆM
        }
        else {
            cout << "NO";
        }
    }
    
    return 0;
    

    }


  • 0
    1239876  đã bình luận lúc 16, Tháng 1, 2026, 12:01

    khoooooo


  • 0
    giabaobuiho  đã bình luận lúc 13, Tháng 1, 2026, 16:58

    include <bits/stdc++.h>

    using namespace std;

    double a,b,c; int main(){ cin >> a >> b >> c; cout << fixed << setprecision(2);

    if (a == 0)
    {
        if (b == 0) 
        {
            if (c == 0) cout << "WOW"<< endl;
            else cout << "NO" << endl;
        } 
        else 
        {
            cout << -c / b << endl;
        }
    
    }
    
    else {
        double delta = b * b - 4 * a * c;
    
        if (delta > 0) {
            double x1 = (-b + sqrt(delta)) / (2 * a);
            double x2 = (-b - sqrt(delta)) / (2 * a);
            if (x1 > x2) {
                double temp = x1;
                x1 = x2;
                x2 = temp;
            }
            cout  << x1 << " " << x2 << endl;
        } 
        else if (delta == 0) {
            double x1 = -b / (2 * a);
            double x2 = -b / (2 * a);
            cout << x1 << " " << x2 << endl;
        } 
        else {
            cout << "NO" << endl;
        }
    }
    
    return 0;
    

    }


  • 0
    maxkhanhminh  đã bình luận lúc 9, Tháng 1, 2026, 9:37

    a, b, c = map(int, input().split()) delta = b * 2 - 4 * a * c if(a != 0): if(delta < 0): print("NO") elif(delta == 0): x = -b/(2 * a) print(f"{x:.2f}") else: x1 = (-b + delta * 0.5)/(2 * a) x2 = (-b - delta**0.5)/(2 * a) rx1 = min(x1, x2) rx2 = max(x1, x2) print(f"{rx1:.2f} {rx2:.2f}") elif(a == 0): if(b == 0 and c != 0): print("NO") elif(b == 0 and c == 0): print("WOW") else: x = -c/b print(f"{x:.2f}")


  • 0
    giakhanhbui185  đã bình luận lúc 9, Tháng 1, 2026, 9:28

    a, b, c = map(int, input().split()) delta = b2 - 4ac if(a != 0): if(delta < 0): print("NO") elif(delta == 0): x = -b/(2a) print(f"{x:.2f}") else: x1 = (-b + delta0.5)/(2a) x2 = (-b - delta*0.5)/(2a) rx1 = min(x1, x2) rx2 = max(x1, x2) print(f"{rx1:.2f} {rx2:.2f}") elif(a == 0): if(b == 0 and c != 0): print("NO") elif(b == 0 and c == 0): print("WOW") else: x = -c/b print(f"{x:.2f}")


  • 0
    leminhkhoi4g0newton5  đã bình luận lúc 9, Tháng 1, 2026, 9:28

    python:

    a, b, c=map(float, input().split()) if -1000<a<1000 and -1000<b<1000 and -1000<c<1000: if a==0: if b == 0: print("WOW") else: print("NO") else: bp=b2 - 4ac if bp>0: x1=( -b + (bp0.5))/(2a) x2=( -b - (bp0.5))/(2a) value1=x1 value2=x2 if x1==0 and x2==0: print("NO") elif x1==0 and x2>0 or x2<0: print(f"{value2:.2f}") elif x2==0 and x1>0 or x1<0: print(f"{value1:.2f}") else: print(f"{value1:.2f} {value2:.2f}") elif bp==0: x= -b/(2*a) value=x if x==0: print("NO") else: print(f"{value:.2f}") else: print("NO")


  • 0
    tranvu281214  đã bình luận lúc 5, Tháng 1, 2026, 13:35

    có ai bt làm ko vâỵ


  • 0
    minhlong180714  đã bình luận lúc 4, Tháng 1, 2026, 13:15

    a, b, c = map(int, input().split())

    if a == 0: if b == 0: if c == 0: print("WOW") else: print("NO") else: x = -c / b print(f"{x:.2f}") else: delta = bb - 4a*c

    if delta < 0:
        print("NO")
    elif delta == 0:
        x = -b / (2*a)
        print(f"{x:.2f}")
    else:
        d = delta ** 0.5   # căn bậc 2 KHÔNG dùng thư viện
        x1 = (-b - d) / (2*a)
        x2 = (-b + d) / (2*a)
    
        if x1 > x2:
            x1, x2 = x2, x1
    
        print(f"{x1:.2f} {x2:.2f}")
    

  • 0
    idk17276  đã bình luận lúc 7, Tháng 12, 2025, 7:48 sửa 2

    lưu ý: bỏ tất cả các dấu trừ đầu các biểu thức vào trong ngoặc VD: cout<<-b/a != cout<<(-b)/a vì nếu b=0 thì: -b/a --> -0.00 ; (-b)/a --> 0.00


  • 0
    mitgsut2007  đã bình luận lúc 27, Tháng 10, 2025, 18:21

    Test hay quên nha mn :)) Test 2 a==0 && c==0 && b!=0 OUTPUT -> 0 Test 3 a==0&& b==0 && c!=0 OUTPUT -> NO Test 10 a==0 && b!=0 && c!=0 OUTPUT -> -c/b :) CAY !


  • 0
    dochanphong  đã bình luận lúc 19, Tháng 10, 2025, 12:24

    Viết chương trình giải phương trình có dạng tổng quát: .

    Input 3 số nguyên lần lượt là hệ số của phương trình

    Giới hạn:

    Output Nếu phương trình vô nghiệm, in ra NO Nếu phương trình có vô số nghiệm, in ra WOW Nếu phương trình có nghiệm, in ra các nghiệm đã làm tròn đến chữ số thập phân thứ 2, theo thứ tự tăng dần và ngăn cách nhau bởi 1 dấu cách. Sample Input #1 Copy 1 2 -3 Output #1 Copy -3.00 1.00


  • -1
    dochanphong  đã bình luận lúc 19, Tháng 10, 2025, 12:23

    yêu cầu admin cho tuantruong bi ban


  • -1
    apt2_0227  đã bình luận lúc 25, Tháng 8, 2025, 5:41

    Cầu mong ADMIN band những acc như thế này ạ.


  • -3
    hunghunh123  đã bình luận lúc 26, Tháng 3, 2025, 8:08

    e xin case 4 vs case 9 vs a


  • 2
    thuyhoa05  đã bình luận lúc 16, Tháng 10, 2025, 11:39

    cho xin cach lam di ban eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee


  • 2
    Very_skibidi  đã bình luận lúc 27, Tháng 11, 2024, 8:37

    round ko bao gio lam tron 2 so


  • 0
    VuSiSi  đã bình luận lúc 27, Tháng 10, 2024, 15:51

    Nghiệm nhỏ hơn phải được biểu diễn trước, cái này chỉ có khi bấm xem lời giải


  • 2
    NguyenbaoLuong  đã bình luận lúc 13, Tháng 4, 2024, 11:36

    bạn khai báo biến ở ngoài {} nha.


  • -1
    huy31  đã bình luận lúc 8, Tháng 3, 2024, 18:04 chỉnh sửa

    Em nghĩ nên kiểm tra lại đối với trường hợp a=0; b=2; c=0 ạ.


  • 0
    anhvu9988  đã bình luận lúc 3, Tháng 3, 2024, 7:40

    cho tui hoi test 10 là gì vậy ( đang sai ở chỗ đó )


  • 0
    anhvu9988  đã bình luận lúc 5, Tháng 3, 2024, 14:13 sửa 6

    code gửi lên bị lỗi không hiện hết bạn ạ với lại mih cũng tìm lỗi được rồi cảm ơn bạn


  • 0
    docxongkhonglam  đã bình luận lúc 1, Tháng 2, 2024, 4:09

    cho em hoi test 7 la gi vay moi nguoi huuh


  • -4
    QMin  đã bình luận lúc 28, Tháng 1, 2024, 14:01 chỉnh sửa

    test 10 ba số nhập vào khai báo float hoặc double là đc nhé


  • -4
    hz001  đã bình luận lúc 26, Tháng 1, 2024, 4:04

    Mọi người cho mình hỏi test4 với test9 là gì vậy :(((


  • 10
    dinhvantung0611  đã bình luận lúc 1, Tháng 1, 2024, 15:18

    Ae lưu ý trường hợp 2 nghiệm = nhau thì in ra đúng 1 nghiệm là được nhé


  • -2
    acetran16112010  đã bình luận lúc 22, Tháng 1, 2024, 12:31

    sai rooi


  • 0
    taithikgirl  đã bình luận lúc 28, Tháng 10, 2023, 2:29

    hao no


  • -3
    tuantruong  đã bình luận lúc 24, Tháng 9, 2023, 14:30

    test 10 là j vậy ạ


  • -2
    LemonG  đã bình luận lúc 2, Tháng 5, 2024, 8:33

    tôi cũng thắc mắc dây


  • -2
    kitajima2910  đã bình luận lúc 11, Tháng 12, 2023, 3:16 sửa 2

    [a = 0; b = 0; c = 0; => WOW] còn [a = 0; b = 0; c !=0; => NO]