Tarefa
Dados dois números inteiros positivos:
- Desenhe o retângulo com as dimensões especificadas pelos dois números inteiros.
- Repita a Etapa 3 até não haver mais espaço.
- Desenhe e preencha o quadrado maior tocando três lados do retângulo (restante).
- Saída do retângulo resultante.
Exemplo
Por exemplo, nossa entrada é 6
e 10
.
Desenhamos o retângulo oco de tamanho 6 x 10:
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
Depois de preencher repetidamente os quadrados, é isso que obteríamos:
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaaccdd
aaaaaaccdd
Existem 4 quadrados aqui ( a
, b
, c
, d
), cada um com um comprimento de lado 6
, 4
, 2
, 2
respectivamente.
Regras e liberdade
- Você deve usar uma letra diferente para cada quadrado.
- Você pode escolher quais letras apoiar, desde que as letras suportadas sejam todos caracteres imprimíveis e que haja pelo menos
10
caracteres suportados. - Em cada iteração da Etapa 3 acima, você tem duas opções (exceto na última iteração, onde você tem apenas uma opção). Ambas as escolhas são válidas.
- O número de quadrados necessários não excederá o número de letras que você suporta.
- Você pode preencher os quadrados com as letras que você apoia em qualquer ordem .
Casos de teste
Entrada: 6, 10
Resultado:
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaaccdd
aaaaaaccdd
ou
aaaaaaccdd
aaaaaaccdd
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
ou
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
ccddaaaaaa
ccddaaaaaa
ou
ccddaaaaaa
ccddaaaaaa
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
ou
ddddddaaaa
ddddddaaaa
ddddddaaaa
ddddddaaaa
ddddddbbcc
ddddddbbcc
Entrada: 1,1
Resultado:
a
Entrada: 1,10
Resultado:
abcdefghij
Entrada: 10,1
Resultado:
a
b
c
d
e
f
g
h
i
j
Observe que existem mais possibilidades do que posso incluir para os casos de teste acima.
Pontuação
Isso é código-golfe . A resposta mais curta em bytes vence.
Aplicam-se brechas padrão .
code-golf
ascii-art
arithmetic
Freira Furada
fonte
fonte
Respostas:
Carvão , 30 bytes
Experimente online! Explicação:
Irritantemente, o comando Oblong do carvão não leva
0
para uma dimensão, que me custa 4 bytes. A outra abordagem seria fazer um loop enquantog * d
, mas não consegui descobrir como iterarb
(o que é predefinido para as letras minúsculas).fonte
W×γδ
, como imprimo uma carta diferente a cada vez?)Pitão , 34 bytes
Experimente online!
fonte
Haskell , 90 bytes
Experimente online!
fonte
Jelly , 32 bytes
Experimente online!
Ṁ,ạ/y
você quer uma explicação? Aqui está.Provavelmente posso jogar um pouco mais usando argumentos implícitos em vez de
³,⁴
.fonte
Haskell , 181 bytes
Experimente online!
Para
10
bytes mais, você obtém uma espiral agradável :)Experimente online!
Ungolfed
O
(#)
operador coloca duas matrizes próximas uma da outra, mas transpõe a correta, por exemplo:Esta é basicamente a versão recursiva do algoritmo de Euclides, mas em vez de esquecer os divisores e os restos e retornar o
gcd
, ele constrói quadrados a partir dele e os acumula(#)
. As
variável são os caracteres restantes que podemos usar:A função real chama a função de cima com uma sequência de todos os caracteres imprimíveis:
fonte
import Data.List
para usartranspose
.164
... #