fbpx

Problema #1003 – Baze1 – Rezolvari PBInfo

de Mihai-Alexandru

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 lui x, y şi suma lor nu depăşesc 2 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;
}
Comentarii

S-ar putea sa iti placa