Gracias a FryAmTheEggman por la idea de esta segunda versión.
Versión 1 aquí .
Desafío no tan simple: dada una cantidad de cartas, construye la mayor casa de cartas que puedas con esa cantidad de cartas, de acuerdo con el siguiente orden de construcción:
/\ /\ /\ /\/\
-- -- -- ---- ----
/\ → /\/\ → /\/\ → /\/\ → /\/\/\ → /\/\/\ → /\/\/\ →
/\ /\
-- -- --
/\/\ /\/\ /\/\
---- ---- ----
→ /\/\/\ → /\/\/\ → /\/\/\/\ → ...
Entonces comienza con una casa de una sola planta, luego construye el grupo adyacente, luego coloca la tarjeta de puente, luego construye el grupo en el segundo piso, luego comienza a construir grupos y puentes desde el primer piso en diagonal para llegar al tercer piso, y así en.
Una sola tarjeta se representará con a /, a \o a --. Si después de usar tantas cartas como sea posible, le queda una, simplemente envíe lo que ha logrado hasta ahora (vea el ejemplo para 3 cartas, el resultado es el mismo que para 2 cartas). La única excepción es el caso de 1 tarjeta, que debe generar una tarjeta plana.
Ejemplos:
Input: 1
Output:
-- <a card lying on the floor>
Input: 2
Output:
/\
Input: 3
Output:
/\
Input: 5
Output:
--
/\/\
Input: 10
Output:
/\
----
/\/\/\
Input: 20
Output:
/\
--
/\/\/\
------
/\/\/\/\
Input: 39
Output:
--
/\/\
----
/\/\/\
------
/\/\/\/\
--------
/\/\/\/\/\
Input: 40
Output:
/\
--
/\/\
----
/\/\/\
------
/\/\/\/\
--------
/\/\/\/\/\
La entrada puede ser numérica o una cadena, y siempre será un número entero positivo. La salida debe ser exactamente como se muestra, con espacios iniciales y finales y líneas nuevas permitidas.
Este es el código de golf , ¡así que puede ganar el programa / función más corto para cada idioma!