P0015. Format dels nombres P57666


Statement
 

pdf   zip

thehtml

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

  • Si n en base b té exactament c dígits, simplement cal escriure n en base b.
  • Si n en base b té menys de c dígits, cal afegir-li sostinguts per l’esquerra.
  • Si n en base b té més de c dígits, cal escriure c asteriscs en lloc de n.

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

Entrada

L’entrada és una seqüència de triplets n, b, c, amb n ≥ 0, 2 ≤ b ≤ 10 i c > 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| ≤ 10, retorni el nombre de dígits que requereix la representació de |n| en base |b|.
  • Useu recursivitat per escriure n en base b (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++