GPTB1 - Hệ phương trình bậc nhất

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

Giải và biện luận hệ phương trình bậc nhất hai ẩn trên tập số thực:

$$\left\{ \begin{array}{l}ax + by = c\\dx + ey = f\end{array} \right.$$

Input

Gồm ~6~ số nguyên ~a,b,c,d,e,f~ ghi trên một dòng, cách nhau bới một hoặc nhiều dấu cách.

Giới hạn:

  • Trong tất cả các test: ~|a|,|b|,|c|,|d|,|e|,|f|≤10^9~

Output

  • Nếu hệ phương trình vô nghiệm, nghi ra VONGHIEM
  • Nếu hệ phương trình có nghiệm duy nhất, ghi ra cặp số là nghiệm của phương trình, các số ghi dạng số thập phân với quy cách làm tròn đến hàng phần trăm, mỗi số cách nhau một dấu cách theo thứ tự là ~x, y~
  • Nếu phương trình có vô số nghiệm, ghi ra VOSONGHIEM.

Sample

Input #1
1 1 2 2 1 3
Output #1
1.00 1.00
Input #2
1 1 2 2 2 5
Output #2
VONGHIEM
Input #3
1 2 3 2 4 6
Output #3
VOSONGHIEM

Problem source: Chuyên Sơn La Online Judge


Bình luận

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



  • 0
    vtt2102005  đã bình luận lúc 6, Tháng 5, 2024, 2:47

    C++ full ac

    include <bits/stdc++.h>

    using namespace std;

    int main(){ double a,b,c, d, e,f; cin >> a >> b >> c >> d >> e >> f; if(a/d==b/e){ if(a/d==c/f) cout << "VOSONGHIEM"; else cout << "VONGHIEM"; } else{ double x1, x2; x2=(cd-fa)/(bd-ea); x1=(c-x2*b)/a; cout << fixed << setprecision (2) << x1 << " " << x2 << endl; } return 0;
    }


  • 0
    quyettin  đã bình luận lúc 27, Tháng 2, 2024, 14:40

    tôi sai test 6,8,9,10. ai đúng hết xin code với


  • -1
    tan2004  đã bình luận lúc 30, Tháng 11, 2023, 16:07

    Ai không nhớ định thức thì tham khảo ạ :v

    include <iostream>

    include <iomanip>

    using namespace std ; int main () { double a,b,c,d,e,f; cin>>a>>b>>c>>d>>e>>f; if(a/d==b/e) { if(a/d==c/f) cout <<"VOSONGHIEM"; else cout <<"VONGHIEM"; } else { double x=(ce-fb)/(ae-db); double y=(c-a*x)/b; cout <<setprecision(2)<


  • 2
    huyhoang190605  đã bình luận lúc 24, Tháng 11, 2023, 11:59

    code py3 tham khảo:

    a1, b1, c1, a2, b2, c2 = map(float, input().split())
    d = a1 * b2 - a2 * b1
    dx = c1 * b2 - c2 * b1
    dy = a1 * c2 - a2 * c1
    
    if d != 0:
        x = dx/d
        y = dy/d
        print(f"{x:.2f} {y:.2f}")
    elif dx == 0:
        print("VOSONGHIEM")
    else:
        print("VONGHIEM")
    

  • -1
    nguyen2nghin9  đã bình luận lúc 19, Tháng 11, 2023, 8:46

    include <iostream>

    int main() { // Nhập các hệ số của phương trình long a1, b1, c1, a2, b2, c2; std::cin >> a1 >> b1 >> c1 >> a2 >> b2 >> c2;

    // Tính định thức và các định thức con
    long D = a1 * b2 - a2 * b1;
    long Dx = c1 * b2 - c2 * b1;
    long Dy = a1 * c2 - a2 * c1;
    
    // Kiểm tra và xuất kết quả
    if (D == 0) {
        if (Dx == 0)
            std::cout << "VOSONGHIEM" << std::endl; // Hệ có vô số nghiệm
        else
            std::cout << "VONGHIEM" << std::endl;   // Hệ vô nghiệm
    } else {
        double x = static_cast<double>(Dx) / static_cast<double>(D);
        double y = static_cast<double>(Dy) / static_cast<double>(D);
        std::cout << std::fixed; // Hiển thị số thực với độ chính xác cố định
        std::cout.precision(2);  // Độ chính xác 2 chữ số sau dấu thập phân
        std::cout << x << " " << y << std::endl; // Xuất kết quả
    }
    
    return 0;
    

    }


  • 0
    viettin  đã bình luận lúc 29, Tháng 10, 2023, 8:19

    import java.util.Scanner;

    public class Demo {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long a1 = sc.nextLong();
        long b1 = sc.nextLong();
        long c1 = sc.nextLong();
        long a2 = sc.nextLong();
        long b2 = sc.nextLong();
        long c2 = sc.nextLong();
    
        long D =  a1 * b2 - a2 * b1;
        long Dx = c1 * b2 - c2 * b1 ;
        long Dy = a1 * c2 - a2 * c1;
    
        if (D == 0) {
            if (Dx == 0) 
                System.out.println("VOSONGHIEM");
            else 
                System.out.println("VONGHIEM"); 
        } else {
            double x = (double) Dx / (double) D;
            double y = (double) Dy / (double) D;
            System.out.printf("%.2f %.2f", x, y);
        }
    }
    

    }

    Java 8 nha mn :)


  • 0
    codega  đã bình luận lúc 19, Tháng 10, 2023, 17:18

    đã acept, gợi ý mn là check kỹ đk hpt có nghiệm với vô nghiệm nhé :>>


  • 0
    huy132004  đã bình luận lúc 15, Tháng 10, 2023, 10:57

    Tốt nhất là cho tất cả các số dạng double


  • 0
    rongreu  đã bình luận lúc 5, Tháng 9, 2023, 14:26

    Chỗ tính x=Dx/D, y=Dy/D nhân thêm 1.0 để nó hiểu số thực. x=1.0Dx/D, y=1.0Dy/D


  • 0
    nmtSPer  đã bình luận lúc 1, Tháng 9, 2023, 2:27

    Ủa sao sai test 6 nhỉ


  • 0
    L1ght  đã bình luận lúc 25, Tháng 8, 2023, 17:00

    Test6 là gì v ad


    • 0
      kid291997  đã bình luận lúc 2, Tháng 9, 2023, 13:29

      Bác giải được chưa, cho tôi tham khảo với, tôi đúng test 6 mà sai test 7


      • 0
        codega  đã bình luận lúc 19, Tháng 10, 2023, 17:20

        test 6 vs 7 đều là hpt có nghiệm hết nhé


  • 0
    QiTunTun  đã bình luận lúc 25, Tháng 8, 2023, 15:58

    test6 la j the a :<


    • 0
      kid291997  đã bình luận lúc 2, Tháng 9, 2023, 13:29

      Bác giải được chưa, cho tôi tham khảo với, tôi đúng test 6 mà sai test 7