Dado un número entero positivo <100 (de 1 a 99, incluidos 1 y 99), genera muchos casilleros.
Un casillero se define de la siguiente manera:
+----+
| |
| |
| |
| nn |
+----+
donde nn
está el número del casillero, en la base 10. Si hay un número de 1 dígito, se expresa con un 0 delante. Por ejemplo, el casillero número 2 muestra el número 02
.
Los casilleros se pueden apilar, pero solo hasta 2 de altura:
+----+
| |
| |
| |
| on |
+----+
| |
| |
| |
| en |
+----+
on
denota un número impar, en
un número par. Los casilleros también se pueden poner uno al lado del otro.
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+----+
| | | |
| | | |
| | | |
| 02 | 04 | 05 |
+----+----+----+
Observe que el casillero número 5 es un casillero con un número impar que se encuentra en la parte inferior. Esto se debe a que cuando tiene una entrada impar, el último casillero debe colocarse en el piso (porque un casillero flotante cuesta demasiado). El ejemplo anterior, por lo tanto, es la salida esperada para n = 5. n = 0 debería devolver un nada.
Reglas: Métodos estándar de entrada / salida. Entrada en cualquier formato conveniente, salida como una cadena. Se aplican lagunas estándar.
Casos de prueba:
Input
Output
---------------------
1
+----+
| |
| |
| |
| 01 |
+----+
--------------------- (newlines optional in case 1)
4
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+
| | |
| | |
| | |
| 02 | 04 |
+----+----+
---------------------
5
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+----+
| | | |
| | | |
| | | |
| 02 | 04 | 05 |
+----+----+----+
---------------------
16
+----+----+----+----+----+----+----+----+
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| 01 | 03 | 05 | 07 | 09 | 11 | 13 | 15 |
+----+----+----+----+----+----+----+----+
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| 02 | 04 | 06 | 08 | 10 | 12 | 14 | 16 |
+----+----+----+----+----+----+----+----+
Este es el código de golf , ¡el código más corto gana!
1
?Respuestas:
Pyth , 66 bytes
Banco de pruebas.
fuente
Python 2,
201191185175171166164163 bytesPruébalo en línea!
fuente
PHP, 191 bytes
Pruébalo en línea!
PHP, 235 bytes
Caso 1 con líneas nuevas opcionales
Pruébalo en línea!
Expandido
PHP, 300 bytes
reemplace
["","",""]
con["\n","\n","\n"]
si desea nuevas líneas para el caso1
Pruébalo en línea!
fuente
Rubí,
256239201191183 bytesEsto es terriblemente largo. Trabajaré más en el golf.
fuente
C (gcc) ,
426335300294282252249246244237 bytesEsto realmente necesita ser golfizado
Pruébalo en línea!
fuente
-~n/2
lugar den/2+n%2
Lote, 305 bytes.
+----+
y| |
ambos son similares a+ +
que pueden generarse a través de una sola sustitución, y resulta ser un poco más corto que generarlos por separado (la cita adicional necesaria para|
s no ayuda).fuente
Pyth -
9774868075 bytesPruébalo aquí
fuente
JavaScript ES6, 224 bytes
Usé algunas ideas de la respuesta Python de Math Junkie
Fragmento de prueba
Limpiado
fuente
Carbón , 37 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Ingrese el número de casilleros en
q
.Pase por los casilleros de
1
hastaq
inclusivo.Calcule la dirección al siguiente casillero y repita eso 5 veces (más golf que usar movimientos de salto).
Dibuja el casillero, comenzando en la esquina inferior izquierda. (La esquina inferior derecha también toma 4 bytes, mientras que la esquina superior derecha toma 5. La esquina superior izquierda solo toma 3 bytes, pero el número del casillero tardaría más en dibujarse).
Dibuje el cero inicial del número de casillero, si es necesario.
Dibuje el número del casillero invertido y de derecha a izquierda, efectivamente a la derecha justificándolo.
Vuelva a la esquina inferior izquierda listo para calcular la dirección al siguiente casillero.
Editar: las versiones posteriores de Charcoal admiten esta solución de 32 bytes:
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Tome los números desde
1
el número de entrada inclusive por pares. (Si el número de entrada es impar, la última matriz solo tendrá un elemento).Pase cada par en orden inverso.
Dibuje el cero inicial del número de casillero, si es necesario.
Dibuje el número del casillero invertido y de derecha a izquierda, efectivamente a la derecha justificándolo.
Muévete a la parte superior izquierda del casillero y dibuja. Esta también es la parte inferior izquierda del siguiente casillero, por lo que estamos listos para dibujar el segundo casillero del par si corresponde.
Pasa al siguiente par de armarios. (Esto debería estar antes del bucle interno para ahorrar 1 byte, pero el carbón genera una salida incorrecta para una entrada de 1 por alguna razón).
fuente