algorithm - tabla - ¿Cómo calcular el valor del dígito i-ésimo en una representación k-aria de un número?
valor posicional de los numeros ejemplos (2)
Algo como:
(n / (k ** i)) % k
(donde ** es el operador de exponenciación y / es división entera (truncamiento)) debería hacerlo. Use (i-1) si desea numerar los dígitos de la derecha comenzando con 1 en lugar de comenzar con 0.
¿Qué es un buen algoritmo para calcular el valor del i -ésimo dígito en una representación k -ary de un número n ?
Ejemplo:
Para la función bitval(int k, int i, int n) :
bitval(5, 4, 9730) = 2 porque en una representación 5-aria (quinaria) del número 9730 (que es 302410), el 4º dígito (de la derecha) es 2.
El algoritmo ingenuo es el siguiente:
- Calcule la representación kary de
n. Esto se puede lograr con divisiones repetidas y operaciones de módulo. - Devuelve el
i-ésimo dígito en esta representación.