362
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