Suma de nombres llargs P40706


Statement
 

pdf   zip   main.cc

thehtml

Feu un programa que llegeixi parells de nombres naturals i escrigui la seva suma en una base donada. La base es troba entre 2 i 36 i els dígits dels nombres són 0, 1, 2, ..., 9, A, B, C, ..., Z.

Com que els naturals que es consideren en aquest problema poden ser molt grans (milers de dígits), cal guardar-los en variables de tipus string. El programa principal ja se us dóna implementat; no el toqueu:

int main() { int b; string x, y; while (cin >> b >> x >> y) { cout << suma(b, x, y) << endl; } }

Implementeu doncs la funció

string suma(int b, string x, string y);

que, donades dues cadenes de caràcters x i y que representen dos naturals en base b, i un natural b amb 2≤ b≤ 36, retorna una cadena de caràcters z que representa la suma de x i y, també en base b.

Podeu suposar que ni x ni y tenen zeros a l’esquerra.

Public test cases
  • Input

    10 0 0
    10 1 1
    10 9 9
    10 99 1
    10 1 99
    

    Output

    0
    2
    18
    100
    100
    
  • Input

    2 0 0
    2 1 1
    2 11111111 1
    

    Output

    0
    10
    100000000
    
  • Input

    16 0 0
    16 1 1
    16 1 F
    36 1 F
    16 F F
    16 FF FF
    36 Y 1
    36 Z 1
    36 Z Z
    

    Output

    0
    2
    10
    G
    1E
    1FE
    Z
    10
    1Y
    
  • Input

    10 999999999999999999999999999999999999999999999999999999999999999999999999999999 1
    10 1 999999999999999999999999999999999999999999999999999999999999999999999999999999
    36 1 ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
    36 ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 1
    36 NM34ZWEXERCVBERT13IUWH9 SNY1HJGYSHJ7685JHK
    

    Output

    1000000000000000000000000000000000000000000000000000000000000000000000000000000
    1000000000000000000000000000000000000000000000000000000000000000000000000000000
    1000000000000000000000000000000000000000000000000000000000000000000000000000000
    1000000000000000000000000000000000000000000000000000000000000000000000000000000
    NM350P2VG8WCA79C89R0FYT
    
  • Information
    Author
    Jordi Petit
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++