DK08 - Máy tính bỏ túi đơn giản

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

Mình cần bạn giúp mình thiết kế một chiếc máy tính bỏ túi đơn giản phục vụ cho công việc bán cá hàng ngày của mình. Do mình khá nghèo nên sẽ chỉ nhờ bạn làm 4 chức năng tính cộng, trừ, nhân và chia. Như vậy là đáp ứng đủ nhu cầu sử dụng cho việc bán cá của mình cũng như giúp mình tốn ít chi phí nhất.

Máy tính mình mong muốn cụ thể như sau:

  • Nếu nhập ~ a + b ~, in ra tổng, kết quả ~ a + b ~.
  • Nếu nhập ~ a - b ~, in ra hiệu, kết quả của ~ a - b ~.
  • Nếu nhập ~ a * b ~, in ra tích, kết quả của ~ a * b ~.
  • Nếu nhập ~ a / b ~, in ra thương, kết quả của ~ a / b ~.

Trong đó:

  • ~a, b ~ là các giá trị số thực.
  • ~+, -, *, /~ lần lượt đại diện cho các toán tử tương ứng của phép cộng, trừ, nhân và chia.

Input

  • Lần lượt là số thứ nhất, toán tử, số thứ hai của phép toán

Giới hạn:

  • Phép toán đảm bảo là 1 trong 4 ký tự: ~+, -, *, /~
  • Các toán hạng có trị tuyệt đối không vượt quá ~10000~

Output

  • Kết quả của phép toán yêu cầu làm tròn tới chữ số thập phân thứ 2.
  • Nếu phép chia không thực hiện được, cho mình biết bằng thông báo Math Error.

Sample

Input #1
1 + 1
Output #1
2.00

Bình luận

Please read the guidelines before commenting.



  • -1
    nhungquach117  đã bình luận lúc 22, Tháng 4, 2026, 13:38

    gshhsd


  • -1
    nguyenhuungocnguyen12  đã bình luận lúc 20, Tháng 4, 2026, 10:18

    s=input() parts=s.split() a=float(parts[0]) c=parts[1] b=float(parts[2]) if c=="+": print("%.2f" % (a + b)) elif c=="-": print("%.2f" % (a - b)) elif c=="*": print("%.2f" % (a * b)) elif c=="/": if b==0: print("Math Error") else: print("%.2f" % (a / b))


  • -1
    nhatvu2k5devai  đã bình luận lúc 6, Tháng 3, 2026, 19:24

    chuyển sang số thực là hết lỗi nhé


  • -1
    lethodai0411  đã bình luận lúc 19, Tháng 2, 2026, 2:03

    ...


  • -7
    manhphuong20420140  đã bình luận lúc 28, Tháng 1, 2026, 8:03

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


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

    include <iostream>

    include <iomanip>

    using namespace std; double a, b; char c; int main() { cin >> a; cin >> c; cin >> b; if (c == '+')cout << fixed << setprecision(2) << a + b; else if (c == '-')cout << fixed << setprecision(2) << a - b; else if (c == '*')cout << fixed << setprecision(2) << a * b; else { if (b == 0)cout << "Math Error"; else cout << fixed << setprecision(2) << a / b; } return 0; } xin vote


  • 0
    ledat132007  đã bình luận lúc 7, Tháng 1, 2026, 18:00

    include <iostream>

    include <iomanip>

    using namespace std;

    int main(){ double a, b; char dau; cin >> a >> dau >> b; switch(dau){ case '+': cout << fixed << setprecision(2) << a+b; break; case '-': cout << fixed << setprecision(2) << a-b; break; case '': cout << fixed << setprecision(2) << ab; break; case '/': if(b==0) cout << "Math Error"; else cout << fixed << setprecision(2) << a/b; } return 0; }


  • 0
    duatrengaunhatxom123  đã bình luận lúc 7, Tháng 1, 2026, 5:41

    a,op,b=input().split() a=float(a) b=float(b) if op=='+': result=a+b print(f"{result:.2f}") elif op=='-': result=a-b print(f"{result:.2f}") elif op=='': result=ab print(f"{result:.2f}") elif op=='/': if b==0: print("Math Error") else: result=a/b print(f"{result:.2f}")


  • -1
    tranvu281214  đã bình luận lúc 6, Tháng 1, 2026, 10:57

    Test case #1: AC [0,002s, 3,50 MB] (1/1) Test case #2: AC [0,002s, 3,38 MB] (1/1) Test case #3: AC [0,002s, 3,50 MB] (1/1) Test case #4: AC [0,002s, 3,63 MB] (1/1) Test case #5: AC [0,002s, 3,50 MB] (1/1) Test case #6: AC [0,002s, 3,50 MB] (1/1) Test case #7: AC [0,002s, 3,50 MB] (1/1) Test case #8: AC [0,002s, 3,50 MB] (1/1) Test case #9: AC [0,002s, 3,50 MB] (1/1) Test case #10: AC [0,002s, 3,38 MB] (1/1)


  • -1
    dizionrlxno1  đã bình luận lúc 16, Tháng 12, 2025, 13:24 sửa 3

    HO VAN BI DAO


  • 0
    Duong_Thanh_Khiem_L8  đã bình luận lúc 24, Tháng 11, 2025, 16:04

    FULL AC:

    #include <iostream>
    #include <iomanip>
    using namespace std;
    double a, b;
    char c;
    int main() {
        cin >> a;
        cin >> c;
        cin >> b;
        if (c == '+')cout << fixed << setprecision(2) << a + b;
        else if (c == '-')cout << fixed << setprecision(2) << a - b;
        else if (c == '*')cout << fixed << setprecision(2) << a * b;
        else {
            if (b == 0)cout << "Math Error";
            else cout << fixed << setprecision(2) << a / b;
        }
        return 0;
    }
    

    • -1
      thanhvinh21052015  đã bình luận lúc 22, Tháng 3, 2026, 13:29

      cảm ơn nha bro , full AC C++20 rồi


  • -1
    lephuochauhungvuong  đã bình luận lúc 10, Tháng 11, 2025, 9:06
    #include <bits/stdc++.h>
    #define ll long long
    using namespace std;
    int main()
    {
        float a,b;
        char dau;
        cin >> a >> dau >> b;
    
        if(dau=='+')
        cout << fixed << setprecision(2) << (a+b) << endl;
        else
    
        if(dau=='-')
         cout << fixed << setprecision(2) << (a-b) << endl;
         else
        if(dau=='*')
         cout << fixed << setprecision(2) <<  (a*b) << endl;
         else
         if(dau=='/' and b!=0)
         cout << fixed << setprecision(2) << (a/b) << endl;
         else
         cout << "Math Error";
    }
    

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

    Test 10 .Nếu nhập khác +,-,*,/ thì output -> Math Error Khai báo ban đầu là double :) là ac full nhé


  • -1
    peterjerry  đã bình luận lúc 27, Tháng 10, 2025, 2:02 sửa 5

    Ae giúp tôi AC với !!


    • -1
      peterjerry  đã bình luận lúc 27, Tháng 10, 2025, 2:09

      include<stdio.h>

      int main (){

      int a, b ;
      
      double tong,hieu,tich,thuong; 
      
      char op;
      
      scanf("%d %c %d",&a,&op,&b);
      if (op=='+'){
          tong=a+b;
          printf("%.2lf",tong);
      }
       else if (op=='-'){
           hieu=a-b;
           printf("%.2lf",hieu);
       }
       else if (op=='*'){
           tich=a*b;
           printf("%.2lf",tich);
       }
       else {
           if(op=='/' && b==0){
               printf("Math Error");
           }
           else{
               thuong=(double)a/b;
               printf("%.2lf",thuong);
           }
       }
      
      return 0;
      

      }


  • -1
    dotrieudinh  đã bình luận lúc 26, Tháng 10, 2025, 6:04

    include <iostream>

    include <iomanip>

    using namespace std;

    int main() { double a, b; char op;

    cin >> a >> op >> b;
    cout << fixed << setprecision(2); 
    if (op == '+') {
        cout << a + b;
    } 
    else if (op == '-') {
        cout << a - b;
    } 
    else if (op == '*') {
        cout << a * b;
    } 
    else if (op == '/') {
        if (b == 0) {
            cout << "Math Error";
        } else {
            cout << a / b;
        }
    } 
    else {
        cout << "Toan tu khong hop le";
    }
    
    return 0;
    

    } hmmm hơi dài


  • -1
    bruhdarklmao  đã bình luận lúc 21, Tháng 10, 2025, 8:51 chỉnh sửa

    Ít chi phí? 1 chức năng 1 củ!


  • -5
    nguyentuankiet211105  đã bình luận lúc 29, Tháng 9, 2025, 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.


  • 3
    bruhdarklmao  đã bình luận lúc 21, Tháng 10, 2025, 8:52

    Đến gg dịch cx k dịch đc cái ngôn ngữ này


  • -5
    minhat  đã bình luận lúc 20, Tháng 8, 2025, 3:01

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


    • 1
      Baoduy2014  đã bình luận lúc 11, Tháng 10, 2025, 8:10

      ai hỏi


    • -6
      HaiAnh1209  đã bình luận lúc 10, Tháng 9, 2025, 8:18

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


  • 3
    zinber  đã bình luận lúc 12, Tháng 8, 2025, 14:30

    Nhớ thêm một điều kiện nếu phép toán khác 4 phép toàn trên. Vd nhập % -> Math Error


  • 1
    quocchill2011  đã bình luận lúc 10, Tháng 8, 2025, 1:50

    Viết bình luận sai chính tả


  • 7
    HHVinh007  đã bình luận lúc 2, Tháng 12, 2024, 4:23

    các bạn nhớ lưu ý dùng :.2f để in ra mấy phần thập phân nhé, bởi python round có thể sẽ hụt số


  • -3
    TrucAnh2406  đã bình luận lúc 12, Tháng 4, 2024, 16:25

    sao mình chạy trên Dev c bình thường mà sao chạy đây sai tất cả test vậy ad? kiểm tra giúp mình với


  • -2
    TuhocKtmt  đã bình luận lúc 6, Tháng 12, 2023, 6:45

    test 5 là chỗ ab phải chèn kdl: (float)ab thì khi đưa ra kết quả mới có 2 số thập phân ở sau được


  • -5
    Konomi  đã bình luận lúc 11, Tháng 11, 2023, 2:45

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


  • -1
    MANH25  đã bình luận lúc 5, Tháng 11, 2023, 10:14

    test 5 là gì vậy


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

      Bạn ơi bạn làm được chưa ?


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

    hao no


  • -2
    nguien_24  đã bình luận lúc 21, Tháng 10, 2023, 21:09

    test 6 la gi v mn


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

    enter image description here


  • -3
    trung_hieu01  đã bình luận lúc 12, Tháng 9, 2023, 11:34

    khó quá admin


  • -1
    nmtSPer  đã bình luận lúc 20, Tháng 8, 2023, 4:35

    ủa có ai bị lỗi Unexpected EOF in the participant's output ở test 5 ko vậy


    • -1
      nguien_24  đã bình luận lúc 21, Tháng 10, 2023, 21:09

      De cho a,b co tri nho hon 10000 a


  • -1
    tranquanglam  đã bình luận lúc 7, Tháng 8, 2023, 15:24

    test 5 là gì á?


  • 0
    nmtrunp  đã bình luận lúc 20, Tháng 7, 2023, 9:47

    test Lỗi rồi ad ơi, mình làm trên ide đúng qua đây lại sai? (test cuối)


    • -1
      nhuttruong2k9  đã bình luận lúc 3, Tháng 8, 2023, 23:17

      bạn lỗi ở khúc math error á tại vì ko có phép chia cho không bạn sửa lại là Math Error