Saltar al contenido

Cifras para numerar

Enunciado

En el scriptorium, cada cifra se escribe a mano con tinta cara. Antes de empezar, el copista quiere saber cuánta tinta le va a costar numerar las páginas del códice, de la 1 a la última.

Escribe una función que reciba n, el número de páginas (un entero de 0 en adelante), y regrese cuántas cifras escribe en total al numerarlas de la 1 a la n. Con n igual a 0 no escribe ninguna: regresas 0.

Contar página por página funciona, pero sale mejor agruparlas por cuántas cifras llevan. Con 120 páginas hay 9 de una cifra (de la 1 a la 9), 90 de dos (de la 10 a la 99) y 21 de tres (de la 100 a la 120), así que el total es 9 + 180 + 63 = 252.

Ejemplos

  • Diez páginas

    10 → 11

  • El ejemplo

    120 → 252

  • Mil páginas

    1000 → 2893

  • Un códice enorme

    54321 → 260499

  • Casi un millón

    999999 → 5888889

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def cifras_totales(n):
    pass

JavaScript

function cifrasTotales(n) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Es gratis y no hace falta cuenta para empezar.

Más retos de O(log n)

Ver todos los retos →