Las cuentas de Lilavati
- O(2ⁿ) · Legendaria
- Plan completo
- Python
- JavaScript
- recursión
- textos
- índices
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):
passJavaScript
function cortes(cifras, meta) {
}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ⁿ)
- Las hornadas de la mañanarecursión · listas · diccionarios
- Las rutas del metrorecursión · listas · ciclos
- Los contrapesos del satéliterecursión · listas · operaciones
- Los cortes de la tablarecursión · listas · diccionarios
- Los interruptores del laboratoriorecursión · listas
- Los módulos en cohetesrecursión · listas · booleanos · división