Mayapyramiden waren (und sind) ein wichtiger Bestandteil der antiken Architektur, die im Allgemeinen für religiöse Zwecke verwendet wurden.
Es waren normalerweise Stufenpyramiden, aber die Stufen waren zu steil, um zu klettern. Die Priester erklommen sie über alternative Treppen, um Zeremonien abzuhalten. Die Pyramiden wurden aufgrund ihrer Größe auch als Wahrzeichen und manchmal sogar als Grabstätten für hochrangige Beamte genutzt.
Die Herausforderung
Schreiben Sie ein Programm, mit dem ein Pyramidenschema auf der Grundlage der Benutzerspezifikationen ausgedruckt werden kann (siehe unten).
Bedarf
Nehmen Sie eine Eingabe von zwei durch Leerzeichen getrennten Variablen vor.
Die Eingabe muss über STDIN (oder die nächstgelegene Alternative) akzeptiert werden.
Die Ausgabe muss über STDOUT (oder die nächstgelegene Alternative) erfolgen.
Eingang
Höhe als positive ganze Zahl. Dies wird als Breite der Basisebene (in Blöcken) verwendet. Jede nachfolgende Stufe der Pyramide hat die Breite ,
n - 1
won
wird die vorherige Bodenbreite (in Blöcken).Blockgröße, die 1 oder eine ungerade positive ganze Zahl ≤ (kleiner als) 10 ist.
Blöcke
Die angegebene Blockgröße bestimmt die Breite (und Höhe) jedes einzelnen Stücks. Im Wesentlichen gibt es i^2
innerhalb des sichtbaren Kastens Leerzeichen, in denen i
die Blockgröße angegeben ist.
Ein 1x1 Block würde so aussehen:
+++
| |
+++
Während ein 5x5-Block so aussehen würde:
+++++++
| |
| |
| |
| |
| |
+++++++
Horizontal benachbarte Blöcke
Bei horizontal nebeneinander angeordneten Blöcken müssen die Mittelwände zu einer einzigen zusammengeführt werden.
Das musst du haben:
+++++
| | |
+++++
Anstelle von so etwas:
++++++
| || |
++++++
Vertikal benachbarte Blöcke (-5% Bonus)
Vertikal nebeneinander liegende Blöcke haben eine besondere Ausnahme: Die Mittelwand kann zu einer zusammengefügt werden.
Also, anstelle von 1x1 Blöcken sieht das so aus:
+++
| |
+++
+++++
| | |
+++++
Sie könnten so aussehen:
+++
| |
+++++
| | |
+++++
Beispiele
Input: 3 1
Output:
+++
| |
+++
+++++
| | |
+++++
+++++++
| | | |
+++++++
OR
+++
| |
+++++
| | |
+++++++
| | | |
+++++++
Input: 2 3
Output:
+++++
| |
| |
| |
+++++
+++++++++
| | |
| | |
| | |
+++++++++
OR
+++++
| |
| |
| |
+++++++++
| | |
| | |
| | |
+++++++++
Anzeigetafel
Geben Sie Ihre Antwort in das folgende Format ein, um in die Rangliste aufgenommen zu werden:
# Language, Score
Oder wenn Sie den Bonus -5% bekommen:
# Language, Score (Bytes - 5%)
Ihre Punktzahl ist nur eine ganze Zahl. Wenn Ihre Punktzahl eine Dezimalzahl ist, runden Sie auf die ganze Zahl auf.
3 2
bewirken?
2 3
würde es verlassen, wenn n - 1 = 0
wo n
die Breite der vorherigen Etage in Blöcken ist.
1 1
?