Trang chủ Tin Học Lớp 7 King là cậu bé rất thích làm toán. Lần này, cậu lấy một biểu thức không dài quá 200000 kí...
Câu hỏi :

King là cậu bé rất thích làm toán. Lần này, cậu lấy một biểu thức không dài quá 200000 kí tự chỉ chứa các chữ số cùng hai phép tính + và rồi tập tính nhẩm. Sau nhiều giờ khổ luyện, King đã tính xong, nhưng cậu ấy băn khoăn không biết mình có tính đúng hay không. Các bạn hãy đưa ra đáp án để King có thể kiểm tra bài làm nhé! Yêu cầu: Cho một xâu kí tự S chỉ gồm các chữ số và hai phép toán +, . Hãy tính giá trị của biểu thức. Input Đọc ở file văn bản ADDSUBTRACT.INP chứa một xâu kí tự S có kí tự chỉ gồm các chữ số và hai phép toán +, - (Dữ liệu vào đảm bảo hợp lệ: xâu S không chứa 2 phép tính liên tiếp, và không có phép tính đứng cuối biểu thức. Ngoài ra, để thuận tiện cho việc cài đặt thì kí tự đầu tiên luôn là dấu phép tính) Output Ghi ra file văn bản ADDSUBTRACT.OUT một số nguyên là kết quả của bài toán. Scoring Subtask ( số điểm): trong chỉ chứa một chữ số. Subtask ( số điểm): không có ràng buộc gì thêm. Example Test 1 Input -1+4+7 Output 10

Lời giải 1 :

`\color{red}{\text{@hoangduy67}}`

#include <bits/stdc++.h>
#include <stdio.h>
using namespace std;
#define ll long long

int main() {
  freopen("addsubtract.INP", "r", stdin);
  freopen("addsubtract.OUT", "w", stdout);
  string s; cin >> s;
  ll ans = 0;
  for(int i = 0; i< s.length();){
    char dau = s[i];
    ll num = 0;
    i++;
    while(s[i]>='0' && s[i]<='9' && i<s.length()){
      num = num * 10 + (s[i]-48);
      i++;
    }
    if(dau == '+') ans += num;
    else ans -=num;
  }
  cout << ans;
}

Lời giải 2 :

#include <bits/stdc++.h>
#define ll long long
using namespace std;

int main()
{
    freopen("addsubtract.inp","r",stdin);
    freopen("addsubtract.out","w",stdout);
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    string s;
    cin >> s;
    ll dau = 0, t = 0;
    vector<ll> a;
    for (char c : s)
    {
        if (c == '-' || c == '+')
        {
            a.push_back((t * (dau == 1 ? -1 : 1)));
            t = 0;
            dau = 0;
        }
        if (c == '-')
        {
            dau = 1;
        }

        else if (isdigit(c))
        {
            t = t * 10 + c - '0';
        }
    }
    a.push_back((t * (dau == 1 ? -1 : 1)));
    ll res = 0;
    for(ll i:a)
    {
        res += i;
    }
    cout << res;
}

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 7

Lớp 7 - Năm thứ hai ở cấp trung học cơ sở, một chuỗi quay mới lại đến và chúng ta vẫn bước tiếp trên con đường học sinh. Học tập vẫn là nhiệm vụ chính, hãy luôn kiên trì và không ngừng cố gắng!

Nguồn :

sưu tập

Copyright © 2024 Giai BT SGK