fbpx

Problema #2392 – SumaXL – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Numim număr mare un număr care conține prea multe cifre pentru a fi memorat în tipurile existente, și număr mic un număr care poate fi memorat în acestea.

Exemplu

sumaxl.in

20 7 8 5 3 7 6 7 1 4 6 9 9 4 3 4 6 6 9 9 9
123

sumaxl.out

78537671469943467122

Explicație

Pe prima lini a fișierului de intrare se află un număr mare cu 20 de cifre – 78537671469943466999, iar pe cea de a doua un număr mic – 123. Suma lor este 78537671469943467122.

#include <bits/stdc++.h>
using namespace std;
ifstream cin("sumaxl.in");
ofstream cout("sumaxl.out");
int main()
{
    int a[10001] ,b[101] , m , n , p=1;
    cin >> n;
    for(int i = n ; i >= 1  ; i--)
        cin >> a[i];
    cin >> m;
    while(m != 0)
    {
        b[p]=m%10;
        p++;
        m /= 10;
    }
    p--;
    if(p > n) n = p;
    int t = 0;
    for(int i = 1  ; i <= n ; i++)
    {
        int c = a[i] + b[i] + t;
        a[i] = c % 10;
        t = c / 10;
    }
    if(t > 0) a[++n]=t;
    for(int i = n ; i >= 1 ; i--)
        cout <<a[i];
    return 0;
}
Comentarii

S-ar putea sa iti placa