SUMBIG - Tính tổng 2 số nguyên lớ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

Cho hai số nguyên không âm ~a~ và ~b~. Hãy tính ~a + b~.

Input

  • Dòng đầu chứa số ~a~.
  • Dòng sau chứa số ~b~.

Giới hạn:

  • ~0 ≤ a, b < 10^{1000000} (a, b\text{ có không quá }10^5\text{ chữ số})~

Output

  • Gồm một dòng duy nhất là kết quả của ~a + b~.

Sample

Input #1
123
4567
Output #1
4690
Input #2
1234567890
9879879876543219876
Output #2
9879879877777787766

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
    godhayuu  đã bình luận lúc 4, Tháng 7, 2025, 0:02

    Code C++ đây nha:

    #include <bits/stdc++.h>
    using namespace std;
    
    string add(string a, string b) {
        if (a.size() < b.size()) swap(a, b);
        reverse(a.begin(), a.end());
        reverse(b.begin(), b.end());
        string r;
        int c = 0;
        for (int i = 0; i < a.size(); ++i) {
            int s = (a[i] - '0') + c;
            if (i < b.size()) s += (b[i] - '0');
            r += (s % 10) + '0';
            c = s / 10;
        }
        if (c) r += c + '0';
        reverse(r.begin(), r.end());
        return r;
    }
    
    int main() {
        string a, b;
        cin >> a >> b;
        cout << add(a, b) << '\n';
        return 0;
    }
    

  • 0
    Chutecobac  đã bình luận lúc 2, Tháng 5, 2025, 4:38 chỉnh sửa

    include <bits/stdc++.h>

    using namespace std;

    const int maxVal = 1e6 + 5;

    void testcase() { char a[maxVal], b[maxVal]; cin >> a >> b; int doLonA = strlen(a), doLonB = strlen(b);

    if (doLonA<doLonB) { swap(a, b); swap(doLonA, doLonB); }

    int x[maxVal], y[maxVal]; for (int i=0; i<doLonA; i++) x[i] = a[doLonA - i - 1] - '0'; for (int i=0; i<doLonB; i++) y[i] = b[doLonB - i - 1] - '0'; for (int i=doLonB; i<doLonA; i++) y[i] = 0;

    int n = 0, du = 0, z[maxVal + 1]; for (int i=0; i<doLonA; i++) { int s = x[i] + y[i] + du; z[n++] = s % 10; du = s / 10; }

    if (du) z[n++] = du;

    for (int i=n-1; i>=0; i--) cout << z[i]; cout << endl; }

    int main() { ios::syncwithstdio(0); cin.tie(0); int t=1; for (int i=1; i<=t; i++) { testcase(); } return 0; } **


  • 0
    codec  đã bình luận lúc 1, Tháng 1, 2025, 10:30

    tại py k giới hạn , c++ thì nó có , nên phải khổ v đó b , luyện tư duy í


  • 0
    Tri1501_10Ti  đã bình luận lúc 15, Tháng 10, 2024, 0:13

    code c++ đi đừng xài py


  • -2
    kietjumper  đã bình luận lúc 26, Tháng 9, 2024, 3:15

    Python ko giới hạn số chữ số :))


  • -7
    bnbnbn  đã bình luận lúc 13, Tháng 12, 2024, 14:23

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


  • -1
    phong_tran1202  đã bình luận lúc 12, Tháng 8, 2024, 14:16

    python nhìn chỉ biết cười =))


  • 0
    haidang3004  đã bình luận lúc 27, Tháng 3, 2024, 15:22

    python thì dễ mà sao c++ khó thế nhỉ


  • 0
    duydonv  đã bình luận lúc 21, Tháng 1, 2024, 6:34

    sao em lại sai đúng test case 8 thôi nhỉ, em code bằng c và dùng stack để cộng. Có ai code kiểu này không chỉ giáo em với


  • 0
    dinhvantung0611  đã bình luận lúc 4, Tháng 1, 2024, 17:37

    Code python có thể AC


  • -2
    triduc_2k9  đã bình luận lúc 23, Tháng 12, 2023, 14:08

    Khó quá


  • -1
    nvthang  đã bình luận lúc 22, Tháng 11, 2023, 3:03

    case 5 có bị sai test ko ạ


  • 0
    triphan2004  đã bình luận lúc 5, Tháng 11, 2023, 16:22

    Test case 9 là gì vậy mọi người