# PBinfo #2393 – SumaXXL – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerința
Numim  număr mare un număr care conține prea multe cifre pentru a fi memorat în tipurile existente. 
Se dau două numere mari, ambele ≥0. Calculați suma lor.

Date de intrare
Fișierul de intrare sumaxxl.in conține pe prima linie numărul mare x, iar pe a doua linie numărul mare y. Pentru fiecare dintre acestea se precizeaza mai intâi numărul de cifre și apoi cifrele numărului, separate prin câte un spațiu.

Date de ieșire
Fișierul de ieșire sumaxxl.out va conține pe prima linie numărul mare S, reprezentând suma celor două numere mari din fișierul de intrare.

Restricții și precizări

ambele numere au cel mult 100 de cifre
cifrele sumei nu vor fi separate prin spații

Exemplu:
sumaxxl.in

20 7 8 5 3 7 6 7 1 4 6 9 9 4 3 4 6 6 9 9 9
25 7 6 3 9 6 3 1 3 6 5 9 5 8 9 1 6 7 9 5 4 5 3 6 5 3
sumaxxl.out

7639709903630386738920652
Explicație
78537671469943466999 + 7639631365958916795453653 = 7639709903630386738920652

## Cod sursă C++

```cpp
#include <fstream>
using namespace std;
ifstream fin("sumaxxl.in");
ofstream fout("sumaxxl.out");
int x[105],y[105];
int main()
{
    int i, n, m, r=0;
    fin>>n;
    for(i=n; i>=1; i--)
    {
        fin>>x[i];
    }
    fin>>m;
    for(i=m; i>=1; i--)
    {
        fin>>y[i];
    }
    if(n<m)
    {
        n=m;
    }
    for(i=1; i<=n ; i++)
    {
        r=x[i]+y[i]+r;
        x[i]=r%10;
        r/=10;
    }
    while(r>0)
    {
        n++;
        x[n]=r%10;
        r=r/10;
    }
    for(i=n; i>=1; i--)
    {
        fout<<x[i];
    }
    fin.close();
    fout.close();
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/2393)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/2393/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-2393/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
