Tâche
Étant donné deux nombres entiers positifs:
- Dessinez le rectangle avec les dimensions spécifiées par les deux entiers.
- Répétez l'étape 3 jusqu'à ce qu'il n'y ait plus d'espace.
- Dessinez et remplissez le plus grand carré touchant les trois côtés du rectangle (restant).
- Sortez le rectangle résultant.
Exemple
Par exemple, notre entrée est 6
et 10
.
Nous dessinons le rectangle creux de taille 6 x 10:
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
Après avoir rempli des carrés à plusieurs reprises, voici ce que nous obtiendrions:
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaaccdd
aaaaaaccdd
Il y a 4 carrés ici ( a
, b
, c
, d
), chacun ayant des côtés de longueur 6
, 4
, 2
, 2
respectivement.
Règles et liberté
- Vous devez utiliser une lettre différente pour chaque carré.
- Vous pouvez choisir les lettres à prendre en charge, tant que les lettres prises en charge sont tous des caractères imprimables et qu'il y a au moins des
10
caractères pris en charge. - Dans chaque itération de l'étape 3 ci-dessus, vous avez deux choix (sauf dans la dernière itération, où vous n'avez qu'un seul choix). Les deux choix sont valides.
- Le nombre de carrés requis ne dépassera pas le nombre de lettres que vous soutenez.
- Vous pouvez remplir les cases avec les lettres que vous soutenez dans n'importe quel ordre .
Cas de test
Contribution: 6, 10
Production:
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
Contribution: 1,1
Production:
a
Contribution: 1,10
Production:
abcdefghij
Contribution: 10,1
Production:
a
b
c
d
e
f
g
h
i
j
Notez qu'il y a plus de possibilités que je ne peux en inclure pour les tests ci-dessus.
Notation
C'est du code-golf . La réponse la plus courte en octets l'emporte.
Des échappatoires standard s'appliquent.
code-golf
ascii-art
arithmetic
Leaky Nun
la source
la source
Réponses:
Fusain , 30 octets
Essayez-le en ligne! Explication:
La commande oblongue de Charcoal ne prend pas
0
une dimension, ce qui me coûte 4 octets. L'autre approche serait de boucler toutg * d
, mais je n'ai pas pu trouver comment itérerb
(qui est prédéfini pour les lettres minuscules).la source
W×γδ
, comment imprimer une lettre différente à chaque fois?)Pyth , 34 octets
Essayez-le en ligne!
la source
Haskell , 90 octets
Essayez-le en ligne!
la source
Gelée , 32 octets
Essayez-le en ligne!
Ṁ,ạ/y
vous voulez une explication? C'est ici.Je peux probablement jouer un peu plus au golf en utilisant des arguments implicites au lieu de
³,⁴
.la source
Haskell , 181 octets
Essayez-le en ligne!
Pour les
10
octets de plus, vous obtenez une belle spirale à la place :)Essayez-le en ligne!
Non golfé
L'
(#)
opérateur place deux matrices l'une à côté de l'autre, mais transpose la bonne, par exemple:Il s'agit essentiellement de la version récursive de l'algorithme d'Euclide, mais au lieu d'oublier les diviseurs et les restes et de renvoyer le
gcd
, il en construit des carrés et les accumule avec(#)
. Less
variables sont les caractères restants que nous pouvons utiliser:La fonction réelle appelle simplement la fonction d'en haut avec une chaîne de tous les caractères imprimables:
la source
import Data.List
pour utilisertranspose
.164
..