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
10
ale 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)
= 6
213
(5)
= 58
6 + 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; }