Tarea
Dados dos enteros positivos:
- Dibuja el rectángulo con las dimensiones especificadas por los dos enteros.
- Repita el paso 3 hasta que no haya más espacio.
- Dibuja y llena el cuadrado más grande tocando tres lados del rectángulo (restante).
- Salida del rectángulo resultante.
Ejemplo
Por ejemplo, nuestra entrada es 6
y 10
.
Dibujamos el rectángulo hueco de tamaño 6 x 10:
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
Después de llenar repetidamente cuadrados, esto es lo que obtendríamos:
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaaccdd
aaaaaaccdd
Hay 4 cuadrados aquí ( a
, b
, c
, d
), cada uno con una longitud de lado 6
, 4
, 2
, 2
respectivamente.
Reglas y libertad
- Debes usar una letra diferente para cada cuadrado.
- Puede elegir qué letras admitir, siempre que las letras admitidas sean todos caracteres imprimibles y haya al menos
10
caracteres admitidos. - En cada iteración del Paso 3 anterior, tiene dos opciones (excepto en la última iteración, donde solo tiene una opción). Ambas opciones son válidas.
- El número de cuadrados requeridos no excederá el número de letras que admite.
- Puede completar los cuadrados con las letras que admite en cualquier orden .
Casos de prueba
Entrada: 6, 10
Salida:
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaaccdd
aaaaaaccdd
o
aaaaaaccdd
aaaaaaccdd
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
o
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
ccddaaaaaa
ccddaaaaaa
o
ccddaaaaaa
ccddaaaaaa
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
o
ddddddaaaa
ddddddaaaa
ddddddaaaa
ddddddaaaa
ddddddbbcc
ddddddbbcc
Entrada: 1,1
Salida:
a
Entrada: 1,10
Salida:
abcdefghij
Entrada: 10,1
Salida:
a
b
c
d
e
f
g
h
i
j
Tenga en cuenta que hay más posibilidades de las que puedo incluir para los casos de prueba anteriores.
Puntuación
Este es el código de golf . La respuesta más corta en bytes gana.
Se aplican lagunas estándar .
code-golf
ascii-art
arithmetic
Monja permeable
fuente
fuente
Respuestas:
Carbón , 30 bytes
Pruébalo en línea! Explicación:
El molesto comando Oblong de Charcoal no tomará
0
una dimensión, lo que me cuesta 4 bytes. El otro enfoque sería hacer un ciclo mientrasg * d
, pero no pude averiguar cómo iterarb
(que está predefinido a las letras minúsculas).fuente
W×γδ
, ¿cómo imprimo una carta diferente cada vez?)Pyth , 34 bytes
Pruébalo en línea!
fuente
Haskell , 90 bytes
Pruébalo en línea!
fuente
Jalea , 32 bytes
Pruébalo en línea!
Ṁ,ạ/y
quieres una explicacion? Aquí está.Probablemente pueda jugar un poco más al golf usando argumentos implícitos en lugar de
³,⁴
.fuente
Haskell , 181 bytes
Pruébalo en línea!
Para
10
bytes más, obtienes una buena espiral :)Pruébalo en línea!
Sin golf
El
(#)
operador coloca dos matrices una al lado de la otra, pero transpone la correcta, por ejemplo:Esta es básicamente la versión recursiva del algoritmo de Euclides, pero en lugar de olvidar los divisores y residuos y devolver el
gcd
, construye cuadrados a partir de ellos y los acumula(#)
. Las
variable son los caracteres restantes que podemos usar:La función real solo llama a la función desde arriba con una cadena de todos los caracteres imprimibles:
fuente
import Data.List
para usartranspose
.164
..