大数加法模板

#include 
typedef long long ll;
using namespace std;
ll a[100000],b[100000];
char aa[100000],bb[100000];
ll z[100000];
int main()
{
    cin >> aa >> bb;
    ll n = strlen(aa);
    ll m = strlen(bb);
    for(int i = 0; i < n; i ++)a[n-i-1] = aa[i] - '0';
    for(int i = 0; i < m; i ++)b[m-i-1] = bb[i] - '0';
    ll l = max(n,m);
    for(int i = 0; i < l; i ++)
    {
        z[i] = a[i] + b[i];
    }
    for(int i = 0; i < l; i ++)
    {
        if(z[i] > 9)
        {
            z[i+1] += z[i] / 10;
            z[i] %= 10;
        }
    }
    ll j = 0;
    for(int i = l; i >= 0; i --)
    {
        if(z[i])
        {
            j = i;
            break;
        }
    }
    for(int i = j; i >= 0; i --)
    {
        cout << z[i];
    }
    cout << endl;
    return 0;
}

 

 

你可能感兴趣的:(知识点,模板)