Cambios de paridad entre dígitos

Dado un número natural n y una base b, calculad cuántas veces cambia la
paridad (par ↔ impar) entre dígitos consecutivos de n cuando se expresa
en base b.

Por ejemplo, 472853 en base 10 tiene los dígitos 4 (par), 7 (impar), 2
(par), 8 (par), 5 (impar) y 3 (impar), y por tanto, hay 3 cambios de
paridad entre dígitos consecutivos. En cambio, 31 en base 2 tiene todos
los dígitos impares (31 ≡ 11111₂) y, por tanto, hay 0 cambios.

Escribid una función recursiva

        int cambios_paridad_digitos(int n, int b);

que calcule lo que se pide.

Precondición

Se cumple que 0 ≤ n ≤ 10⁸ y 2 ≤ b ≤ 1000.

Observación

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

Observaciones

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

- No se pueden usar vectores ni cadenas (strings).

Información del problema

Autoría: Unknown
Traducción: Maria Blesa

Generación: 2026-01-25T10:29:21.408Z

© Jutge.org, 2006–2026.
https://jutge.org
