F016A. Naturals a cadenes P30055


Statement
 

pdf   zip

thehtml

Implementeu una funció

string nat_a_cadena(int x, int n, int b);

que retorni una cadena de @n@ caràcters que representi el natural @x@ en base @b@.

En el cas que el nombre @x@ en base @b@ no ocupi tots els @n@ caràcters, cal omplir la cadena amb sostinguts per l’esquerra. En el cas que ocupi més de @n@ caràcters, cal retornar una cadena amb @n@ asteriscos. Representeu els dígits superiors a 9 amb ‘@A@’, ‘@B@’, …, ‘@F@’.

Observacions

  • El programa principal ja se us dóna implementat; no el canvieu. Aquest llegeix triplets d’enters @x, n, b@ i escriu el resultat de la crida a la funció que heu d’implementar:
    int main() { int x, n, b; while (cin >> x >> n >> b) cout << nat_a_cadena(x, n, b) << endl; }
  • Us suggerim definir i utilitzar una funció @int nombre_digits(int x, int b);@ que retorni el nombre de dígits del natural @x@ en base @b@.
  • Recordeu que un string @s@ amb @n@ caràcters @c@ es pot declarar així: @string s(n, c);@
  • Recordeu també que les operacions dels strings com ara @s += ’0’;@ o bé @s1 += s2;@ o bé @s = s1 + s2;@ estan prohibides.

Precondició

Es té que x≥0, 2≤ b≤ 16 i que n>0.

Public test cases
  • Input

    12345    5   10
    12345    7   10
    12345    4   10
    12345    4   16
    15       2   16
    15       2   15
    15       2   10
    15       2   8
    15       2   4
    15       2   3
    666      11  2
    1048576  21  2
    1048576  21  4
    1048576  21  8
    1048576  21  16
    0        1   8
    1        1   9
    0        45  10
    1        45  11
    

    Output

    12345
    ##12345
    ****
    3039
    #F
    10
    15
    17
    33
    **
    #1010011010
    100000000000000000000
    ##########10000000000
    ##############4000000
    ###############100000
    0
    1
    ############################################0
    ############################################1
    
  • Information
    Author
    Professorat de P1
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++