0.Cộng số nguyên lớn.


Submit solution

Points: 1 (partial)
Time limit: 1.0s
Memory limit: 98M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Tính tổng 2 số nguyên dương.

Input

2 số nguyên dương a, b cách nhau bởi dấu cách (a, b không quá 10000 chữ số)

Output

Tổng 2 số.

Example

Input:

1245582031203948502340 124567

Output:

1245582031203948626907

Comments


  • 3
    NguyenDongThinh_CNTT4_K61  commented on Feb. 16, 2022, 2:03 p.m.

    //code mình xem trên youtube

    #include<bits/stdc++.h>
    using namespace std;
    string tongsl(string a,string b)
    {
        while(a.length()<b.length()) // đây là thêm các kí tự 0 vào các chuỗi cho 2 chuỗi bằng nhau
            a='0'+a;
        while(a.length()>b.length())
            b='0'+b;
        string kq=""; // biến lưu kết quả
        int nho=0; // đây là biến nhớ(VD: 9+6=17 thì biến nhớ sẽ lưu số cần nhớ là 1)
        for(int i=a.length()-1;i>=0;i--) // vì cộng từ phải sang trái nên cộng ngược
        {
            int so = int(a[i]-'0') + int(b[i]-'0')+nho; // cộng lần lượt 2 số với nhau và đây là lấy từng kí tự trong chuỗi mà muốn cộng với nhau thì phải trừ đi cho kí tự 0 để lấy mã ASCII 
            kq = char(so%10+'0') + kq; // đây là chỗ để lưu kết quả
            nho = so/10; // lấy số nhớ
        }
        if(nho>0) 
            return char(nho+'0')+kq; // Trong trường hợp khi chạy xong mà vẫn còn số nhớ thì cộng thêm
        return kq;
    } 
    int main()
    {
        string a,b;
        cin>>a>>b;
        cout<<tongsl(a,b);
    }