Els dos dígits més grans P92206


Statement
 

pdf   zip   main.cc

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=231+0306 = 2 \cdot 3^1 + 0 \cdot 3^0.

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 22 \le @b@ \le @n@ 109\le 10^9. 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++