Aufgabe
Bei zwei positiven ganzen Zahlen:
- Zeichnen Sie das Rechteck mit den durch die beiden Ganzzahlen angegebenen Abmessungen.
- Wiederholen Sie Schritt 3, bis kein Platz mehr vorhanden ist.
- Zeichnen und füllen Sie das größte Quadrat, das drei Seiten des (verbleibenden) Rechtecks berührt.
- Geben Sie das resultierende Rechteck aus.
Beispiel
Zum Beispiel ist unsere Eingabe 6
und 10
.
Wir zeichnen das hohle Rechteck der Größe 6 x 10:
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxx
Nach wiederholtem Ausfüllen von Quadraten erhalten wir Folgendes:
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaaccdd
aaaaaaccdd
Es gibt 4 Quadrate hier ( a
, b
, c
, d
), die jeweils mit der Seitenlänge 6
, 4
, 2
, 2
bzw..
Regeln und Freiheit
- Sie müssen für jedes Quadrat einen anderen Buchstaben verwenden.
- Sie können auswählen, welche Buchstaben unterstützt werden sollen, solange die unterstützten Buchstaben alle druckbare Zeichen sind und mindestens
10
Zeichen unterstützt werden. - In jeder Iteration von Schritt 3 oben haben Sie zwei Möglichkeiten (außer in der letzten Iteration, in der Sie nur eine Wahl haben). Beide Auswahlmöglichkeiten sind gültig.
- Die Anzahl der erforderlichen Quadrate überschreitet nicht die Anzahl der von Ihnen unterstützten Buchstaben.
- Sie können die Quadrate mit den von Ihnen unterstützten Buchstaben in beliebiger Reihenfolge ausfüllen .
Testfälle
Eingang: 6, 10
Ausgabe:
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaaccdd
aaaaaaccdd
oder
aaaaaaccdd
aaaaaaccdd
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
aaaaaabbbb
oder
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
ccddaaaaaa
ccddaaaaaa
oder
ccddaaaaaa
ccddaaaaaa
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
bbbbaaaaaa
oder
ddddddaaaa
ddddddaaaa
ddddddaaaa
ddddddaaaa
ddddddbbcc
ddddddbbcc
Eingang: 1,1
Ausgabe:
a
Eingang: 1,10
Ausgabe:
abcdefghij
Eingang: 10,1
Ausgabe:
a
b
c
d
e
f
g
h
i
j
Beachten Sie, dass es für die obigen Testfälle mehr Möglichkeiten gibt, als ich einschließen kann.
Wertung
Das ist Code-Golf . Die kürzeste Antwort in Bytes gewinnt.
Es gelten Standardlücken .
code-golf
ascii-art
arithmetic
Undichte Nonne
quelle
quelle
Antworten:
Holzkohle , 30 Bytes
Probieren Sie es online aus! Erläuterung:
Ärgerlicherweise wird Charcoals Oblong-Befehl keine
0
Dimension annehmen , was mich 4 Bytes kostet. Der andere Ansatz wäre, eine Schleife zu macheng * d
, aber dann konnte ich nicht herausfinden, wie ich iterieren sollb
(was in Kleinbuchstaben vordefiniert ist).quelle
W×γδ
, wie drucke ich jedes Mal einen anderen Brief?)Pyth , 34 Bytes
Probieren Sie es online aus!
quelle
Haskell , 90 Bytes
Probieren Sie es online aus!
quelle
Gelee , 32 Bytes
Probieren Sie es online aus!
Ṁ,ạ/y
Willst du eine Erklärung? Hier ist es.Ich kann wahrscheinlich ein bisschen mehr Golf spielen, indem ich stattdessen implizite Argumente verwende
³,⁴
.quelle
Haskell , 181 Bytes
Probieren Sie es online aus!
Für
10
mehr Bytes bekommst du stattdessen eine schöne Spirale :)Probieren Sie es online aus!
Ungolfed
Der
(#)
Operator legt zwei Matrizen nebeneinander, transponiert jedoch die richtige, z.Dies ist im Grunde die rekursive Version von Euklids Algorithmus, aber anstatt die Teiler und Reste zu vergessen und die zurückzugeben
gcd
, baut er Quadrate daraus auf und akkumuliert diese mit(#)
. Dies
Variable sind die verbleibenden Zeichen, die wir verwenden können:Die eigentliche Funktion ruft die Funktion nur von oben mit einer Zeichenfolge aller druckbaren Zeichen auf:
quelle
import Data.List
zu verwendentranspose
.164