• VNOJ
  • Trang chủ
  • Danh sách bài
  • Các bài nộp
  • Thành viên
    >
    • Tổ chức
  • Các kỳ thi
  • Wiki
  • Thông tin
    >
    • FAQ
    • Trình chấm ngoài
    • Tag
    • Máy chấm
    • Devlog
    • Github
    • Tickets
    • Thư viện đề thi
    • Đề xuất contest
  • Tạp chí 2025
VI EN Đăng nhập  hoặc  Đăng ký

k116tinthephamthanh

  • Thông tin
  • Thống kê
  • Blog

Số bài đã giải: 130
Hạng điểm: #1873
Tổng điểm: 33,27
Đóng góp: 0

Xem các bài nộp

Đã tham gia 7 kỳ thi
Hạng rating: #3843
Rating: 1280
Min. rating: 1280
Max rating: 1560

Từ Trường THPT Chuyên Chu Văn An, Hà Nội

Thông tin

K116 Tin - CVA :3

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
bool ss(string a, string b) {
    while(a.length() < b.length()) a = '0' + a;
    while(b.length() < a.length()) b = '0' + b;
    return a >= b;
}
string congsl(string a, string b) {
    int nho = 0; string c = "";
    while(a.length() < b.length()) a = '0' + a;
    while(b.length() < a.length()) b = '0' + b;
    for(int i = a.length() - 1; i >= 0; --i) {
        nho += a[i] + b[i] - 96;
        c = char(nho%10+48) + c;
        nho /= 10;
    }
    c = char(nho%10+48) + c;
    while(c[0] == '0' and c.length() > 1) c.erase(0,1);
    return c;
}
string trusl(string a, string b) {
    int muon = 0; string c = "";
    while(a.length() < b.length()) a = '0' + a;
    while(b.length() < a.length()) b = '0' + b;
    for(int i = a.length() - 1; i >= 0; --i)
        if(a[i] - b[i] - muon >= 0) {c = char(a[i]-b[i]-muon+48) + c; muon = 0;}
        else {c = char(a[i]+10-b[i]-muon+48) + c; muon = 1;}
    while(c[0] == '0' and c.length() > 1) c.erase(0,1);
    return c;
}
string nhanslsl(string a, string b) {
    int nho; string c = "";
    reverse(a.begin(), a.end());
    reverse(b.begin(), b.end());
    for(int i = 0; i < a.size() + b.size(); i++) c += '0';
    for(int i = 0; i < a.length(); ++i) {
        nho = 0;
        for(int j = 0; j < b.length(); ++j) {
            nho = nho + c[i+j] - 48 + (a[i] - 48)*(b[j] - 48);
            c[i+j] = char(nho % 10 + 48);
            nho /= 10;
        }
        c[i+b.length()] += nho;
    }
    for (int i = 0; i < c.length()/2; ++i) swap(c[i], c[c.length()-i-1]);
    while(c[0] == '0' and c.length() > 1) c.erase(0,1);
    return c;
}
string nhanslsn(string a, long m) {
    long i, r = 0;
    for (i = a.size() - 1; i >= 0; i--) {
        r += (a[i] - '0') * m;
        a[i] = char(r % 10 + '0');
        r /= 10;
    }
    while (r > 0) {
        a = char(r % 10 + '0') + a;
        r /= 10;
    }
    return a;
}
string chiaslsl(string a, string b) {
    int sl; string du = "", t[11], c = ""; t[0] = "";
    for(int i = 1; i <= 10; ++i) t[i] = congsl(t[i-1],b);
    for(int i = 0; i < a.length(); ++i) {
        du += a[i];
        sl = 0;
        while(ss(du,t[sl])) sl++;
        c += char(sl-1+48);
        du = trusl(du,t[sl-1]);
    }
    while(c[0] == '0' and c.length() > 1) c.erase(0,1);
    return c;
}
string mod(string a, string b) {
    int sl; string du = "", t[11], c = ""; t[0] = "";
    for(int i = 1; i <= 10; ++i) t[i] = congsl(t[i-1],b);
    for(int i = 0; i < a.length(); ++i) {
        du += a[i];
        sl = 0;
        while(ss(du,t[sl])) sl++;
        c += char(sl-1+48);
        du = trusl(du,t[sl-1]);
    }
    while(c[0] == '0' and c.length() > 1) c.erase(0,1);
    return du;
}
void chiaslsn(string a, long long b) {
    string c = "";
    long long du = 0;
    for(int i = 0; i < a.length(); ++i) {
        du = du * 10 + a[i] - 48;
        c += char(du / b + 48);
        du %= b;
    }
    while(c[0] == '0' and c.length() > 1) c.erase(0, 1);
    cout << c << endl << du;
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    //freopen("congsl.INP","r",stdin);
    //freopen("congsl.OUT","w",stdout);
    string a, b;
    cin >> a >> b;
    cout << "a + b = " << congsl(a,b) << endl;
    if(ss(a,b)) cout << "a - b = " << trusl(a,b) << endl;
    else cout << "a - b = " << '-' << trusl(b,a) << endl;
    cout << "a * b = " << nhanslsl(a,b) << endl;
    cout << "a / b = " << chiaslsl(a,b) << endl;
    cout << "a % b = " << mod(a, b);
    return 0;
}

Huy hiệu

Người dùng này không có huy hiệu nào.

«    »
CN
T2
T3
T4
T5
T6
T7
Ít
Nhiều

Lịch sử rating

, #

dựa trên nền tảng DMOJ | theo dõi VNOI trên Github và Facebook