Cuántos dígitos adyacentes iguales? P85908


Statement
 

pdf   zip   main.cc

thehtml

Dado un natural n y una base b, calculad cuantos dígitos adyacentes iguales tiene n cuando se expresa en base b.

Por ejemplo, 7784447 en base 10 tiene 3: Los dos primeros 7s, el primer 4 con el segundo 4, y el segundo 4 con el tercer 4.

Como otro ejemplo, 31 en base 2 tiene 4, porque 31 en binario es 11111.

Escribid una función recursiva

int digitos_adyacentes_iguales(int n, int b);

que retorne el número de pares de dígitos adyacentes iguales de n cuando se expresa en base b.

Precondición

Se cumple 0 ≤ n ≤ 108 y 2 ≤ b ≤ 1000.

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

Observación

Cualquier solución que no sea recursiva tendrá un cero de calificación.

Public test cases
  • Input/Output

    digitos_adyacentes_iguales(7784447, 10) → 3
    digitos_adyacentes_iguales(31, 10) → 0
    digitos_adyacentes_iguales(31, 2) → 4
    digitos_adyacentes_iguales(31, 4) → 1
    digitos_adyacentes_iguales(9999, 100) → 1
  • Information
    Author
    Salvador Roura
    Language
    Spanish
    Translator
    Salvador Roura
    Original language
    Catalan
    Other languages
    Catalan
    Official solutions
    C++
    User solutions
    C++