Descripción
Ha habido muchos otros desafíos relacionados con estos números antes, y espero que este no esté entre ellos.
El n º número triangular es igual a la suma de todos los números naturales hasta n , cosas simples. Hay una página de wikipedia y una entrada en OEIS , para aquellos que desean informarse más.
Ahora, Gauss descubrió que cada número natural puede expresarse como una suma de tres números triangulares (estos incluyen 0), y está bien tener un número más de una vez, por ejemplo 0 + 1 + 1 = 2.
Desafío
Su tarea es escribir un programa o función, dado un número natural (incluido 0), imprime tres números triangulares que suman el argumento. Puede imprimir los números separados por espacios, como una matriz o por otro método que desee. Sin embargo, está prohibido usar cualquier función integrada para obtener directamente una matriz, un rango o cualquier otra forma de colección que contenga una lista de números triangulares (por ejemplo, un solo átomo que produce el rango).
Casos de prueba
9 -> 6 + 3 + 0 or 3 + 3 + 3
12 -> 6 + 6 + 0 or 6 + 3 + 3 or 10 + 1 + 1
13 -> 6 + 6 + 1
1 -> 1 + 0 + 0
0 -> 0 + 0 + 0
Nota: Si hay más de una combinación posible, puede imprimir una o todas, pero debe imprimir cualquier combinación solo una vez, eliminando todas las combinaciones que son el resultado de reorganizar otras combinaciones. Realmente agradecería un enlace de prueba y una explicación, realmente me encanta ver cómo resuelve el problema;)
Esto es código golf , por lo que se aplican las lagunas estándar. ¡Que gane la respuesta más corta en bytes!
ano siempre será un número triangular
ny devuelven una lista de los primeros nnúmeros de triángulo ? Eso se siente más bien dirigido contra un lenguaje específico, aunque no sé cuál.