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, 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

Hãy đọc nội quy trước khi bình luận.



  • 0
    TrucAnh2406  đã bình luận lúc 12, Tháng 4, 2024, 15:51

    cho mình hỏi test 10 sao sai hoài vậy ta?

    include <stdio.h>

    include <math.h>

    int main() { float a,b,c; float x,x1,x2,del; scanf("%f%f%f", &a, &b,&c); if (a==0) { if (b==0) { if (c==0) printf("WOW"); else printf("NO");} else { x=-c/(2.0b); printf("%.2f", x); }} else { del=bb-4ac; if (del<0) printf("NO"); else if (del==0) { x1=x2=-b/(2.0a); printf("%.2f",x1); } else { x1=(-b-sqrt(del))/(2.0a); x2=(-b+sqrt(del))/(2.0*a); printf("%.2f %.2f",x2,x1); } } return 0; }


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

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


      • 0
        TrucAnh2406  đã bình luận lúc 16, Tháng 4, 2024, 0:47

        mình đã sửa như bạn nói mà cũng k đc. cứ báo lỗi test 10 thui


  • 5
    nguyenductoan59  đã bình luận lúc 3, Tháng 4, 2024, 14:59

    CODE C++ ĐÃ AC

    include <bits/stdc++.h>

    using namespace std;

    int main ()

    {

    double a, b, c, delta, x1, x2;
    cin >> a >> b >> c;
    if ( a == 0 )
    {
        if ( b == 0 )
        {
            if ( c == 0 )
            {
                cout <<" WOW "<< endl;
            }
            else
            {
                cout <<" NO "<< endl;
            }
        }
        else
        {
            cout << fixed << setprecision(2) << -c / b << endl;
        }
    }
    else
    {
        delta = pow(b, 2) - ( 4 * a * c );
        if ( delta > 0 )
        {
            x1 = ( -b + sqrt( delta )) / ( 2 * a );
            x2 = ( -b - sqrt( delta )) / ( 2 * a );
            cout << fixed << setprecision(2) << min( x1, x2 ) <<" "<< max( x1, x2 ) << endl;
        }
        else if ( delta == 0 )
        {
            double xkep = -b / ( 2 * a );
            cout << fixed << setprecision(2) << xkep << endl;
        }
        else
        {
            cout <<" NO "<< endl;
        }
    }
    return 0;
    

    } CHO MÌNH XIN 1 VOTE


  • -2
    chylan  đã bình luận lúc 11, Tháng 3, 2024, 15:41

    include<iostream>

    include<math.h>

    include<iomanip>

    using namespace std; int main(){ float a,b,c; cin>>a>>b>>c; float dt=bb-(4ac); if (a==0){ if (b==0){ if(c==0){ cout<<"WOW"; }else{ cout<<"NO"; } }else{ cout<<fixed<a); }else{ cout<<fixed<a)<<" "<<fixed<a); } } }


  • 0
    luckycat10000  đã bình luận lúc 10, Tháng 3, 2024, 9:17

    Ai cho em hỏi là test 10 là sai ở đâu ko ạ ? :)

    include <stdio.h>

    include <math.h>

    int main() { int a, b, c; float x, x1, x2,delta;

    scanf ("%d %d %d",&a,&b,&c);
    
    if (a == 0)
    {
        if (b == 0)
        {
            if (c == 0)
            {
                printf ("WOW\n");
            }
            else
            {
                printf ("NO\n");
            }
        }
        else
        {
            if (c == 0)
            {
                printf ("0\n");
            }
            else
            {
                x = -c/b*1.0;
                printf ("%0.2f\n",x);
            }
        }
    }
    else
    {
        delta = pow(b,2) - 4*a*c;
        if (delta > 0)
        {
            x1 = (-b-sqrt(delta))/(2*a);
            x2 = (-b+sqrt(delta))/(2*a);
            if (x1 > x2)
            {
                printf ("%0.2f %0.2f\n", x2,x1);
            }
            else if (x2 > x1)
            {
                printf ("%0.2f %0.2f\n", x1,x2);
            }
        }
        else if (delta == 0)
        {
            x1 = x2 = -b/(2*a)*(1.0);
            printf ("%0.2f",x1);
        }
        else
        {
            printf ("NO\n");
        }
    }
    return 0;
    

    }


    • 0
      dl12  đã bình luận lúc 22, Tháng 3, 2024, 1:30

      bạn thử đổi thành float a b c đi


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

    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
      haidang3004  đã bình luận lúc 3, Tháng 3, 2024, 13:45

      bn gửi code đi mik xem


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

        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
    _Nampt  đã bình luận lúc 28, Tháng 2, 2024, 12:40

    Cho mình hỏi test2 là gì vậy?


  • 0
    tuan2003  đã bình luận lúc 19, Tháng 2, 2024, 3:36

    cho e hỏi test 4 là gì được k ạ


  • 0
    dailongdza  đã bình luận lúc 17, Tháng 2, 2024, 13:54

    a=input().split(' ') a,b,c=map(int, a) if a==0: if b==0: if c==0: print('WOW') else:
    print('NO') else: print('{:.2f}'.format(-c/b)) else: delta=b2-(4ac) if delta<0: print('NO') if delta==0: print('{:.2f}'.format(-b/(2a))) if delta>0: can=delta0.5 x1=(-b+can)/(2a) x2=(-b-can)/(2*a) if x1>x2: x1,x2=x2,x1 print('{:.2f}'.format(x1),'{:.2f}'.format(x2)) code này sai test5 với test7 sai ở đâu ạ


  • 2
    Chutecobac  đã bình luận lúc 17, Tháng 2, 2024, 7:43

    include <bits/stdc++.h>

    using namespace std; int main (){ double a, b, c, delta, x1, x2; cin >> a >> b >> c; if ( a == 0 ){ if ( b == 0 ){ if ( c == 0 ){ cout <<" WOW "<< endl; } else { cout <<" NO "<< endl; } } else { cout << fixed << setprecision(2) << -c / b << endl;
    } } else { delta = pow(b, 2) - ( 4 * a * c ); if ( delta > 0 ){ x1 = ( -b + sqrt( delta )) / ( 2 * a ); x2 = ( -b - sqrt( delta )) / ( 2 * a ); cout << fixed << setprecision(2) << min( x1, x2 ) <<" "<< max( x1, x2 ) << endl;
    } else if ( delta == 0 ){ double xkep = -b / ( 2 * a ); cout << fixed << setprecision(2) << xkep << endl; } else { cout <<" NO "<< endl; } }
    return 0; }


  • 0
    thambtk17  đã bình luận lúc 15, Tháng 2, 2024, 14:38

    include <bits/stdc++.h>

    using namespace std;

    int main() { double delta,x1,x2,a,b,c; cin>>a>>b>>c; if(a == 0) { if(b == 0) { if (c == 0) cout<<"WOW"; else cout<<"NO"; } else cout<<fixed<b-4ac; if(delta<0) { cout<<"NO"; } else if(delta==0) cout<<fixed<a); else { x1=((-b-sqrt(delta))/(2a)); x2=((-b+sqrt(delta))/(2a)); cout<<fixed<


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

    cho mình hỏi case 7 test là gì vậy mn


  • 2
    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


  • 0
    satouakira2005  đã bình luận lúc 30, Tháng 1, 2024, 4:18

    mọi người cho em hỏi test2 là gì vậy :<


  • 0
    QMin  đã bình luận lúc 28, Tháng 1, 2024, 14:01

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


  • 0
    LiuChi_3007  đã bình luận lúc 27, Tháng 1, 2024, 4:24

    Mình dùng hàm giải bài này nhé!

    include<bits/stdc++.h>

    define FAST iosbase::syncwith_stdio(false);cin.tie(NULL); cout.tie(NULL);

    using namespace std; const long long mod = 1000000007;

    void hoanvi(float *x1,float *x2){ float t = *x1; *x1 = *x2; *x2= t; }

    float tinhptb2(float a,float b,float c, float x1,float *x2){ // -1 la vo nghiem , 0 la vo so nghiem , 1 la co 1 nghiem,2 la co 2 no float denta; if(a==0 && b==0 && c==0){ return 0; } else if(a==0 && b==0 && c!=0){ return -1; } else if(a==0 && b!=0){ *x1 = (float)-c/b; return 1; } denta = bb - 4ac; if(denta < 0){ return -1; } else if(denta == 0){ x1 = (float)-b/(2a); return 1; } else{ x1 = (float)(-b+sqrt(denta))/(2a); x2 = (float)(-b-sqrt(denta))/(2a); return 2; } }

    int main(){ FAST; float s,a,b,c; float x1,x2; scanf("%f%f%f",&a,&b,&c); s = tinhptb2(a,b,c,&x1,&x2); if(s==-1){ printf("NO"); } else if(s==0){ printf("WOW"); } else if(s==1){ printf("%.2f",x1); } else{ if(x1>x2){ hoanvi(&x1,&x2); } printf("%.2f %.2f",x1,x2); } }


  • 0
    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 :(((


  • 0
    HuyHoang12345  đã bình luận lúc 9, Tháng 1, 2024, 14:57

    test 10 là gì vậy ạ


  • 0
    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é


  • 0
    Kha_ga_k29  đã bình luận lúc 30, Tháng 12, 2023, 7:58

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;

    namespace DK07GIAIptbac2 {

    internal class Program
    {
    
        static void Main(string[] args)
        {
    
            string[] intString = Console.ReadLine().Split();
    
            int a, b, c;
    
            a = int.Parse(intString[0]);
    
            b = int.Parse(intString[1]);
    
            c = int.Parse(intString[2]);
    
            if(a == 0)
            {
    
                if(b == 0)
                {
    
                    if (c == 0)
                        Console.Write("WOW");
                    else
                        Console.Write("NO");
                }
                else
                {
                    Console.Write($"{(double)-c / b:0.00}");
                }
            }
            else
            {
    
                double delta = b * b - 4 * a * c;
    
                if (delta < 0)
                    Console.Write("NO");
    
                else if (delta == 0)
                    Console.Write($"{(double)-b / (2 * a):0.00}");
    
                else if(delta > 0)
                {
                    double x1 = (-b - Math.Sqrt(delta)) / (2 * a);
    
                    double x2 = (-b + Math.Sqrt(delta)) / (2 * a);
    
                    if (x1 > x2)
                        Console.Write($"{x2:0.00} {x1:0.00}");
                    else
                        Console.Write($"{x1:0.00} {x2:0.00}");
                }
            }
        }
    }
    

    }


  • 0
    deno  đã bình luận lúc 12, Tháng 12, 2023, 15:35

    DENO::

    #include <stdio.h> #include <math.h> int main(){ int a,b,c; scanf("%d %d %d",&a,&b,&c); int delta=pow(b,2)-4ac; float x1=(-b-sqrt(delta))/(2a); float x2=(-b+sqrt(delta))/(2a); if(delta>0&&a!=0){ if(x1>x2){ int tmp=x1; x1=x2; x2=tmp; } printf("%.2f %.2f",x1,x2); } else if(delta<0){ printf("NO"); } else if(a==0&&b==0){ if(c==0){ printf("WOW"); } else{ printf("NO"); } } else if(a==0&&b!=0){ printf("%.2f",(float)-c/b); } else if(delta==0&&a!=0){ printf("%.2f",(float)-b/(2*a)); }

    }


  • 0
    NoTheBest  đã bình luận lúc 24, Tháng 11, 2023, 10:53

    a,b,c=[int(x) for x in input().split()] if a==0: if b==0: if c==0: print('WOW') else: print('NO') else: if c==0: print('0.00') else: print("{:.2f}".format(-c/b)) else: delta=b**2-4*a*c if delta &lt;0: print('NO') elif delta==0: print("{:.2f}".format(-b/2*a)) else: x1=(-b-(delta**0.5))/(2*a) x2=(-b+(delta**0.5))/(2*a) print("{:.2f}".format(x1),"{:.2f}".format(x2))


  • 2
    5kym4rk  đã bình luận lúc 8, Tháng 11, 2023, 15:15

    Mọi người check hộ em code này bị lỗi logic gì không ạ ? Em bị sai ngay test đầu. Mặc dù thử test ngoài thì chuẩn.

    include <stdio.h>

    include <math.h>

    int main() { double a, b, c; scanf("%lf " "%lf " "%lf", &a, &b, &c); if (a == 0 && b == 0) { if (c != 0) { printf("NO"); } else { printf("WOW"); } } else if (a == 0 && b != 0) { printf("%.2lf", -c / b); } else if (a != 0 && b != 0) { double denta = b * b - 4 * a * c; printf("%.2lf " "%.2lf", (-b - sqrt(denta))/(2 * a), (-b + sqrt(denta))/(2 * a)); } return 0; }


    • 0
      5kym4rk  đã bình luận lúc 8, Tháng 11, 2023, 15:20

      À em biết rồi, em chưa xét điều kiện denta.


  • -3
    truong18khanh10  đã bình luận lúc 30, Tháng 10, 2023, 13:35

    include <bits/stdc++.h>

    using namespace std;

    int main() { iosbase::syncwith_stdio(false); cin.tie(NULL);

    double a,b,c;

    cin>>a>>b>>c;

    double delta = b * b - 4 * a * c;

    if(a == 0){

    if(b == 0 && c!=0){ cout<<"NO"; return 0; }

    if (c == 0 && b == 0){ cout<<"WOW"; return 0; }

    printf("%0.2f",-c/b); return 0; }

    if(delta < 0){ cout<<"NO"; return 0; }

    if(delta == 0){ printf("%0.2f",-b / (2 * a)); return 0; }

    double n1 = (-b + sqrt(delta)) / (2 * a);

    double n2 = (-b - sqrt(delta)) / (2 * a);

    if(n1 > n2){ printf("%.2f %.2f", n2,n1); return 0; }

    printf("%.2f %.2f", n1,n2);

    return 0;
    

    }


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

    hao no


  • -28
    _SUGAR__DADDY_  đã bình luận lúc 14, Tháng 10, 2023, 3:34

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -9
    Names_  đã bình luận lúc 13, Tháng 10, 2023, 7:08 chỉnh sửa

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


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

    test 10 là j vậy ạ


  • -4
    doraemondat0605  đã bình luận lúc 14, Tháng 9, 2023, 9:43

    trong phương trình bậc 2 chỉ có vô nghiệm, nghiệm kép hoặc có 2 nghiệm thôi chứ làm gì có vô số nghiệm ạ?


    • 0
      Kennub  đã bình luận lúc 19, Tháng 1, 2024, 15:32

      a b c = 0 thì vô số nghiệm nhé


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

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


    • -1
      codeovertime  đã bình luận lúc 15, Tháng 9, 2023, 3:32

      Vô số nghiệm khi a = 0 và b = 0 bạn nhé


      • -7
        Bachuthegioi  đã bình luận lúc 14, Tháng 10, 2023, 14:31

        Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -4
    codeovertime  đã bình luận lúc 12, Tháng 9, 2023, 1:42

    Mọi người cho em hỏi làm cách nào in ra theo thứ tự tăng dần và ngăn cách nhau bởi 1 dấu cách ạ. Mọi người giải đáp thắc mắc của em được không ạ ? Nếu được, em cảm ơn ạ.


  • -5
    255NightFury  đã bình luận lúc 10, Tháng 9, 2023, 1:46

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -4
    Andrea  đã bình luận lúc 27, Tháng 8, 2023, 14:59

    mn ơi cho m hỏi test4 là gì vậy


  • -6
    phanh  đã bình luận lúc 8, Tháng 8, 2023, 14:19

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -1
    tahm1302  đã bình luận lúc 27, Tháng 7, 2023, 2:35

    nếu phương trình có nghiệm kép thì chỉ in ra 1 nghiệm thôi nhé


  • -4
    truong1511  đã bình luận lúc 26, Tháng 7, 2023, 3:21

    Mọi người cho mình hỏi test3 là gì vậy :>>


    • -7
      kimquyhuynh2005  đã bình luận lúc 5, Tháng 8, 2023, 13:25

      Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.