Saltar al contenido

Las cuentas de Lilavati

Enunciado

En la India del siglo XII, el matemático Bhaskara escribió un libro de problemas y le puso el nombre de su hija, Lilavati. En su casa se jugaba a esto: Lilavati escribía una hilera de cifras y un total, y había que partir la hilera en números que, sumados, dieran ese total.

Recibes cifras, un texto de 1 a 10 cifras, todas del 1 al 9 (no hay ceros), y meta, un entero de 1 en adelante. Partir la hilera es elegir entre qué cifras cortar: cada trozo se lee como un número, las cifras no cambian de orden y se usan todas. Puedes cortar en cualquier cantidad de lugares, y también se vale no cortar nada y dejar el número entero. Regresa, como entero, de cuántas maneras se puede partir la hilera para que la suma de los trozos sea igual a meta.

Con "1111" y 13 sirven tres: 11 + 1 + 1, 1 + 11 + 1 y 1 + 1 + 11, así que regresas 3. Con "2125" y 28 sirven dos: 21 + 2 + 5 y 2 + 1 + 25. Si ninguna manera sirve, regresa 0.

Ejemplos

  • El primer ejemplo

    "1111", 13 → 3

  • El segundo ejemplo

    "2125", 28 → 2

  • Solo cifras sueltas

    "123", 6 → 1

  • No se vale dejar cifras sin usar

    "919", 9 → 0

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

Empiezas con esto

Python

def cortes(cifras, meta):
    pass

JavaScript

function cortes(cifras, meta) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(2ⁿ)

Ver todos los retos →