P0015. Format dels nombres P57666


Statement
 

pdf   zip

Donat un natural nn, una base bb i un natural cc, es vol escriure nn en base bb utilitzant exactament cc caràcters, tot seguint el format següent:

  • Si nn en base bb té exactament cc dígits, simplement cal escriure nn en base bb.

  • Si nn en base bb té menys de cc dígits, cal afegir-li sostinguts per l’esquerra.

  • Si nn en base bb té més de cc dígits, cal escriure cc asteriscs en lloc de nn.

Feu un programa que, donada una seqüència de triplets nn, bb, cc, escrigui per a cadascun d’ells una línia seguint aquest format.

Entrada

L’entrada és una seqüència de triplets nn, bb, cc, amb n0n \ge 0, 2b102 \le b \le 10 i c>0c > 0.

Sortida

Per a cada triplet de l’entrada, cal escriure una línia segons el format descrit.

Observacions

  • No podeu usar strings per resoldre aquest problema.

  • Us suggerim usar una funció @nombre_digits(n, b)@ que, donats dos naturals |n| i |b| amb 2|b|102 \le |b| \le 10, retorni el nombre de dígits que requereix la representació de |n| en base |b|.

  • Useu recursivitat per escriure nn en base bb (sense els sostinguts).

Public test cases
  • Input

        54321  10   5
         4321  10   5
       654321  10   5
         9999  10  20
          125   2   8
          125   3   8
          125   4   8
          125   5   8
          125   6   8
          125   7   8
          125   8   8
          125   9   8
    536870912   2   1
    536870912   2  32
            0   2   1
            0  10   2
    

    Output

    54321
    #4321
    *****
    ################9999
    #1111101
    ###11122
    ####1331
    ####1000
    #####325
    #####236
    #####175
    #####148
    *
    ##100000000000000000000000000000
    0
    #0
    
  • Information
    Author
    Professorat de P1
    Language
    Catalan
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++