317
Cerința
Numim număr mare un număr care conține prea multe cifre pentru a fi memorat în tipurile existente.
Exemplu
produsxxl.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
produsxxl.out
599998858371156857510752802116223611839497347
Explicație
78537671469943466999 + 7639631365958916795453653 = 599998858371156857510752802116223611839497347
#include <bits/stdc++.h>
using namespace std;
ifstream cin("produsxxl.in");
ofstream cout("produsxxl.out");
int n , m , cnt , a[105] , b[105] , prod[205];
void citire(int a[] , int n)
{
for(int i = n ; i >= 1 ; i--)
cin >> a[i];
}
void afisare(int a[] , int n)
{
for(int i = n ; i >= 1 ; i--)
cout << a[i];
}
void inmultire_2nr_mari(int a[] , int b[])
{
for(int i = 1 ; i <= n ; i++)
for(int j = 1 ; j <= m ; j++)
prod[i + j - 1] += a[i] * b[j];
cnt = n + m - 1;
int r = 0;
for(int i = 1 ; i <= cnt ; i++)
{
r += prod[i];
prod[i] = r % 10;
r /= 10;
}
while(r)
{
prod[++cnt] = r;
r /= 10;
}
}
int main()
{
cin >> n;
citire(a , n);
cin >> m;
citire(b , m);
inmultire_2nr_mari(a , b);
afisare(prod , cnt);
return 0;
}
Comentarii