Suma de nombres llargs P40706


Statement
 

pdf   zip   main.cc

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 xx i yy que representen dos naturals en base bb, i un natural bb amb 2b362\le b\le 36, retorna una cadena de caràcters zz que representa la suma de xx i yy, també en base bb.

Podeu suposar que ni xx ni yy 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++