320
Cerința
Se dau două numere b1 b2, reprezentând două baze de numeraţie şi două şiruri de cifre x y, reprezentând două numere: x în baza b1, y în baza b2. Determinaţi suma numerelor x şi y în baza 10.
Date de intrare
Fișierul de intrare baze1.in conține pe prima linie numerele b1 b2, iar pe a doua linie cele două şiruri de cifre cu semnificaţia de mai sus.
Date de ieșire
Fișierul de ieșire baze1.out va conține pe prima linie numărul S, reprezentând suma dintre x şi y.
Restricții și precizări
2 ≤ b1,b2 ≤ 10- reprezentările în baza
10ale luix,yşi suma lor nu depăşesc2 000 000 000
Exemplu
baze1.in
2 5 110 213
baze1.out
64
Explicație
110(2) = 6213(5) = 586 + 58 = 64
#include <bits/stdc++.h>
using namespace std;
ifstream fin("baze1.in");
ofstream fout("baze1.out");
char am[25] , an[25];
int b1 , b2 , n1 , n2 , v;
int main()
{
fin >> b1 >> b2 >> am >> an;
for(int i = 0 ; i < strlen(am) ; i++)
{
v = am[i] - '0';
n1 = n1 * b1 + v;
}
for(int i = 0 ; i < strlen(an) ; i++)
{
v = an[i] - '0';
n2 = n2 * b2 + v;
}
fout << n1 + n2;
}
Comentarii