Meine Frau ist sehr, sagen wir, besonders, wenn es darum geht, Ornamente auf unseren Weihnachtsbaum zu setzen. Lassen Sie uns ihr einen Code besorgen, der ihr in dieser schwierigen Zeit hilft.
Eingang
Bei einer Eingabe 2 < n < 10
die Höhe des Baumes und 0 < k < n
die eindeutige Anzahl der Ornamente.
Aufgabe
Dekorieren Sie den Baum beginnend mit 1
und inkrementieren Sie ihn, k
während wir die Ornamente um den Baum wickeln. Wenn wir erreichen k
und mehr Zweige zum Dekorieren haben, beginnen wir wieder bei 1
.
Es ist in Ordnung, wenn sich nicht die gleiche Anzahl von Verzierungen auf dem Baum befindet, solange das Muster erfüllt ist.
Die Ornamente sollten mit ^
Ausnahme der obersten Reihe über jedem Zweig erscheinen .
Der Baum ist so aufgebaut, dass er mit einer Verzweigung beginnt und die nächste Ebene + 1 Verzweigungen mit einem Leerzeichen dazwischen hat, das von oben versetzt ist:
^
^ ^
Für eine dritte Zeile würden Sie eine weitere Verzweigung hinzufügen und sie erneut so versetzen, dass sich keine Verzweigung in derselben Spalte befindet (wenn Sie sich das wie ein Raster vorstellen).
^
^ ^
^ ^ ^
Ausgabe
Gib deinen geschmückten Baum aus.
Beispiele
1.
n = 3, k = 2
^ //Height is 3
^ ^
^ ^ ^
Jetzt dekorieren wir jeden Zweig beginnend mit 1 und inkrementieren zu k:
^
1 2
^ ^
1 2 1
^ ^ ^
2.
n = 6, k = 5
^ //Non-Decorated
^ ^
^ ^ ^
^ ^ ^ ^
^ ^ ^ ^ ^
^ ^ ^ ^ ^ ^
^ //Decorated
1 2
^ ^
3 4 5
^ ^ ^
1 2 3 4
^ ^ ^ ^
5 1 2 3 4
^ ^ ^ ^ ^
5 1 2 3 4 5
^ ^ ^ ^ ^ ^
3.
n = 5, k = 1
^
^ ^
^ ^ ^
^ ^ ^ ^
^ ^ ^ ^ ^
^
1 1
^ ^
1 1 1
^ ^ ^
1 1 1 1
^ ^ ^ ^
1 1 1 1 1
^ ^ ^ ^ ^
Das ist Code-Golf, also gewinnt der kürzeste Code! Viel Spaß und viel Glück!
Antworten:
C #
226221 Bytes5 Bytes gespart dank @Mukul Kumar und @aloisdg
Golf gespielt:
Ungolfed:
Testen:
Edit: Ich hatte ein Schauspielcasting
int
zuConsoleColor
... Tis the season :)MerryChristmas.gif
quelle
i=1
die int-Deklaration eingeben und aus Ihrerfor
Schleife entfernen ...C#
Antwort etwas Liebe findet.05AB1E ,
292724 BytesDrei Bytes gespart dank Adnan!
Probieren Sie es online!
quelle
NN>*;
durchNLO
.N*(N+1)/2
absichtlich die Summe aufeinanderfolgender Ganzzahlen ab 1 berechnet habe, aber ich habe völlig vergessen, dass 05AB1E dafür eingebaute Funktionen hat. Vielen Dank!ï
Teil jetzt: p?JavaScript (ES6), 97 Byte
Es sieht so aus, als ob Ihre Frau wirklich verrückt ist. Dies schließt weder führende oder nachfolgende Zeilenumbrüche noch führende oder nachfolgende Leerzeichen ein. :-)
Demo
Code-Snippet anzeigen
quelle
C ++ 214-13-3-1-10 = 186 Bytes
Golf gespielt
Vielen Dank an @ cyoce für das Speichern von 1 Byte.
Thanks @ conor für hacken es auf 186 nach unten!
Ungolfed + kopieren & kompilieren
quelle
#define s(a)
?#define s std::cout<<
und Vornehmen entsprechender Anpassungen.Python 2, 133 Bytes
quelle
Clojure, 223 Bytes
Mein erster Versuch mit Clojure Golf zu spielen:
Wenn es wie
(println (str "\n" (d 6 5)))
ein Newline aufgerufen wird, ist es auf REPL schöner:Nicht golfen:
Ich hatte einige Probleme mit faulen Sequenzen und verschachtelten Listen, aber ich konnte einige Zeichen speichern, indem ich sie nicht wiederholte
repeat
;) und\^
Zeichen anstelle von"^"
Zeichenfolgen verwendete. Ich könnte auch überraschend viele Räume weglassen.quelle
Ruby 107 Bytes
So genannt
Ausgabe:
quelle
C 170 Bytes
Rufen Sie an mit:
Als Bonus gibt es hier eine 4-Bit-Binärversion:
quelle