Els dos dígits més grans P92206


Statement
 

pdf   zip   main.cc

html

Donats dos naturals n i b, calculeu els dos dígits més grans d’n en base b, evitant repetir dígits.

Per exemple, en base 10 els dos dígits més grans de 37045 són 7 i 5, de 8292992 són 9 i 8, i de 10 són 1 i 0. En base 3, els dos dígits més grans de 6 són 2 i 0, perquè 6 = 2 · 31 + 0 · 30.

Escriviu un procediment

void digits_maxims(int n, int b, int& mx1, int& mx2);

que deixi en mx1 el màxim dels dígits d’n en base b, i en mx2 el segon màxim.

Precondició

Es compleix 2 ≤ bn ≤ 109. A més, n té almenys dos dígits diferents en base b.

Observació Només cal enviar el procediment demanat; el programa principal serà ignorat.

Public test cases
  • Input/Output

    digits_maxims(37045, 10) → 7 5
    digits_maxims(10, 10) → 1 0
    digits_maxims(8292992, 10) → 9 8
    digits_maxims(6, 3) → 2 0
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++