Función para engrosar números X50141


Statement
 

pdf   zip   main.cc

html

En este problema, dado cualquier número natural x con n dígitos x1xn, diremos que y = y1yn es el resultado de engrosar x si, para todo i entre 1 y n, yi = max{x1, …, xi}. Por ejemplo, si engrosamos 7 obtenemos 7, si engrosamos 32064781 obtenemos 33366788, y si engrosamos 9000000 obtenemos 9999999.

Escribid una función

int engrosa(int x);

que devuelva el resultado de engrosar x.

No podéis utilizar vectores en vuestro código. Os sugerimos que penseis una implementación recursiva. Si lo consideráis conveniente, podéis implementar y usar procedimientos auxiliares.

Vuestro código debe seguir las normas de estilo y contener los comentarios que consideréis oportunos.

Precondición

Se cumple 0 < x < 109.

Observación Sólo tenéis que enviar el procedimiento requerido; el programa principal será ignorado.

Public test cases
  • Input/Output

    engrosa(7) → 7
    engrosa(32064781) → 33366788
    engrosa(9000000) → 9999999
  • Information
    Author
    Jordi Cortadella
    Language
    Spanish
    Translator
    Maria Serna
    Original language
    Catalan
    Other languages
    Catalan English
    Official solutions
    Unknown. This problem is being checked.
    User solutions
    C++