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

View as PDF

Submit solution

Points: 1.00 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
C, C#, C++, Go, Java, Pascal, Perl, PHP, 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

Comments

Please read the guidelines before commenting.



  • 0
    TrucAnh2406  commented on April 12, 2024, 4:25 p.m.

    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


  • -1
    hieucode  commented on Jan. 24, 2024, 12:50 p.m.

    Code C++ cho ai cần ( BÍ LẮM THÌ MỚI THAM KHẢO )

    include<bits/stdc++.h>

    using namespace std;

    int main(){

    double a, b;
    cin >> a;
    char s;
    cin >> s;
    cin >> b;
    switch ( s ){
    case '+' :
        cout << fixed << setprecision(2) << a + b;
        break;
    case '-' :
        cout << fixed << setprecision(2) << a - b;
        break;
    case '*' :
        cout << fixed << setprecision(2) << a * b;
        break;
    case '/' :
        if ( b == 0)
        cout << "Math Error";
        else 
        cout << fixed << setprecision(2) << a / b;
        break;
    

    }

    return 0;
    

    }


  • 1
    hohoanghai5042011  commented on Jan. 19, 2024, 12:26 p.m. edited

    include <bits/stdc++.h>

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

    full ac


  • 0
    Kha_ga_k29  commented on Dec. 30, 2023, 8:29 a.m.

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    namespace DK08MAYTINHBOTUI

    {

    internal class Program
    {
        static void Main(string[] args)
        {
            string[] intString = Console.ReadLine().Split();
            double a, b;
            char sign;
            a = double.Parse(intString[0]);
            sign = char.Parse(intString[1]);
            b = double.Parse(intString[2]);
            switch (sign)
            {
                case '+':
                    Console.Write($"{a + b:0.00}");
                    break;
                case '-':
                    Console.Write($"{a - b:0.00}");
                    break;
                case '*':
                    Console.Write($"{a * b:0.00}");
                    break;
                case '/':
                    {
                        if (b == 0)
                            Console.Write("Math Error");
                        else
                            Console.Write($"{a / b:0.00}");
                        break;
                    }
            }
    
        }
    }
    

    }


  • 2
    kitajima2910  commented on Dec. 11, 2023, 3:34 a.m.

    Code Java mại zô mại zô, các bạn tham khảo nhé, thấy có ích nhớ vote mình ^^ thanks:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.StringTokenizer;
    
    /**
     *
     * @author hoai.phamxuan
     */
    public class DK08 {
    
        public static void main(String[] args) throws IOException {
    
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            StringTokenizer st = new StringTokenizer(br.readLine());
    
            double a = Double.parseDouble(st.nextToken());
            String cal = st.nextToken();
            double b = Double.parseDouble(st.nextToken());
    
            double result = 0;
            if("+".equals(cal)) {
                result = a + b;
            } else if("-".equals(cal)) {
                result = a - b;
            } else if("*".equals(cal)) {
                result = a * b;
            } else {
                if(b == 0) {
                    System.out.println("Math Error");
                    return;
                } else {
                    result = a / b;
                }
            }
    
            System.out.printf("%.2f", result);
        }
    
    }
    

    • 0
      Tuangoc  commented on Jan. 6, 2024, 1:53 p.m.

      import java.util.Scanner; import java.lang.Math; public class hello { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double a = sc.nextInt(); char o = sc.next().charAt(0); double b = sc.nextInt(); switch (o) { case '+': System.out.printf("%.2f",(double)a+b); break; case '-': System.out.printf("%.2f",(double)a-b); break; case '': System.out.printf("%.2f",(double)ab); break; case '/': if (b==0) { System.out.println("Math Error"); }else { System.out.printf("%.2f",(double)a/b); } } } } mình làm như vầy mà nó có 700 point th bạn giúp mình với


  • 0
    TuhocKtmt  commented on Dec. 6, 2023, 6:45 a.m.

    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


  • 2
    TQThong2k11  commented on Dec. 1, 2023, 2:28 a.m.

    include <bits/stdc++.h>

    using namespace std; string s; float a, b; int main(){ cin >> a >> s >> b; if(s == "+"){ cout << fixed << setprecision(2) << a + b; } else if(s == "-"){ cout << fixed << setprecision(2) << a - b; } else if(s == "*"){ cout << fixed << setprecision(2) << a * b; } else if(b == 0) cout << "Math Error"; else cout << fixed << setprecision(2) << a / b; return 0; } theo mình đây là code C++ đơn giản nhất ^-^


  • 0
    Konomi  commented on Nov. 11, 2023, 2:45 a.m.

    case 3 là j ae nhỉ


  • 0
    5kym4rk  commented on Nov. 10, 2023, 3:15 p.m.

    Có bác nào code C không ạ ? Cho em tham khảo với. Em làm mãi không full.


    • 0
      jimtrung  commented on Feb. 4, 2024, 9:08 a.m.

      include <stdio.h>

      int main(){ float a, b; char c[99] = '+, -, , /'; scanf("%f %c %f", &a, &c, &b); switch(c){ case '+': printf("%.2f", a+b); break; case '-': printf("%.2f", a-b); break; case '': printf("%.2f", a*b); break; case '/': if(b==0) printf("Math Error"); else printf("%.2f", a/b); break; default: printf("Math Error"); break; } return 0; } bi overflow nhung ma CA het


  • 0
    MANH25  commented on Nov. 5, 2023, 10:14 a.m.

    test 5 là gì vậy


    • 0
      5kym4rk  commented on Nov. 10, 2023, 3:15 p.m.

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


  • 1
    taithikgirl  commented on Oct. 28, 2023, 2:29 a.m.

    hao no


  • 0
    nguyenquanghuy1106  commented on Oct. 27, 2023, 7:24 a.m.

    include<iostream>

    include<iomanip>

    using namespace std ; int main () { int n , m ; char c ; cin >> n >> c >> m ; if(n>10000 || m>10000) { cout << "Vui long nhap lai!"; } else { switch (c) { case '+': cout << fixed << setprecision(2)<< (double)n+m ; break ;

        case '-':
        cout << fixed << setprecision(2)<< (double)n-m ;
        break ;
    
        case '*':
        cout << fixed << setprecision(2)<< (double)n*m ;
        break ;
    
        case '/':
            if(m==0)
            {
                cout << "Math Error";
                break ;
            }
            else
            {                   
              cout << fixed << setprecision(2)<< (double)n/m ;
            }
            break ;
     }
     }
    

    } sửa e với


  • 0
    nguien_24  commented on Oct. 21, 2023, 9:09 p.m.

    test 6 la gi v mn


  • -1
    minh253  commented on Sept. 23, 2023, 9:50 a.m.

    java

    import java.util.*;

    public class Calculator {

    public static void main(String[] args){
        Scanner inp = new Scanner(System.in);
        double a = inp.nextDouble();
        char c = inp.next().charAt(0);
        double b = inp.nextDouble();
    
        switch(c){
            case '+':
                System.out.printf("%.2f",a+b);
                break;
            case '-':
                System.out.printf("%.2f",a-b);
                break;
            case '*':
                System.out.printf("%.2f",a*b);
                break;
            case '/':
                if (b!=0){
                    System.out.printf("%.2f",a/b);
                }
                else System.out.print("Math Error");
                break;
            default :
                System.out.print("Math Error");
        }
    }
    

    }


  • -2
    NMPstony  commented on Sept. 15, 2023, 3:33 p.m.

    Python3 a=input().split() x=float(a[0]) y=float(a[2]) tt=str(a[1]) if -10000<= (x and y) <= 10000: if tt=="+": print("{:.2f}".format(x+y)) elif tt=="-": print("{:.2f}".format(x-y)) elif tt=="": print("{:.2f}".format(xy)) elif tt=="/": if y==0: print("Math Error") else: print("{:.2f}".format(x/y)) else: print("Math Error") else: print("Math Error")


    • 0
      NMPstony  commented on Sept. 15, 2023, 3:37 p.m.

      enter image description here


  • -2
    tranhuyhsgs  commented on Sept. 15, 2023, 10:34 a.m.

    include<stdio.h>

    int main(){ float a,b; char c; scanf("%f%c%f", &a, &c, &b); if((-10000<=a && a<=10000) && (-10000<=b && b<=10000)){ switch(c){ case '+': printf("%f",a+b); break; case '-': printf("%f",a-b); break; case '': printf("%f",ab); break; case '/': printf("%f",a/b); break; } } return 0; }


  • 0
    trung_hieu01  commented on Sept. 12, 2023, 11:34 a.m.

    khó quá admin


  • -1
    hoa111  commented on Aug. 25, 2023, 2:35 p.m.

    def tong(x, y): return x + y

    def hieu(x, y): return x - y

    def tich(x, y): return x * y

    def thuong(x, y): return x / y

    n = input()
    dv = n.split()

    if len(dv) != 3: print("Math Error") else: vt1 = dv[0] pt = dv[1] vt2 = dv[2] try: vt1 = float(vt1) vt2 = float(vt2)

        if pt not in ('+', '-', '*', '/'):
            print("Math Error")
        else:
            if pt == '+':
                kq = tong(vt1, vt2)
                print(f"{kq:.2f}")
            elif pt == '-':
                kq= hieu(vt1, vt2)
                print(f"{kq:.2f}")
            elif pt == '*':
                kq = tich(vt1, vt2)
                print(f"{kq:.2f}")
            elif pt == '/':   
                if vt2 == 0:
                    print("Math Error") 
                else:
                    kq = thuong(vt1, vt2)
    
                    print(f"{kq:.2f}")
    except ValueError:
        print("Math Error")
    

  • -1
    FuuFanMu  commented on Aug. 21, 2023, 3:43 p.m.

    include <bits/stdc++.h>

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


  • 1
    nmtSPer  commented on Aug. 20, 2023, 4:35 a.m.

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


    • 0
      nguien_24  commented on Oct. 21, 2023, 9:09 p.m.

      De cho a,b co tri nho hon 10000 a


  • 0
    tranquanglam  commented on Aug. 7, 2023, 3:24 p.m.

    test 5 là gì á?


  • 2
    nmtrunp  commented on July 20, 2023, 9:47 a.m.

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


    • 0
      nhuttruong2k9  commented on Aug. 3, 2023, 11:17 p.m.

      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