Opis zadania:
Narysuj sześcian w sztuce ASCII w przybliżeniu w rzucie szafki.
Monospaced fonts
często mają postacie, które są około dwa razy wyższe niż są szerokie. Ponieważ wejściem jest długość linii pionowych (z wyłączeniem narożników), linie poziome są rysowane z dwukrotnie większą liczbą znaków, dzięki czemu powstały obraz jest w przybliżeniu sześcianem. Cofające się linie są narysowane w połowie długości, jak nakazuje to rzut szafki.
Narożniki sześcianu są reprezentowane przez +
linie poziome, linie -
pionowe i linie |
ukośne /
.
Podsumowując: Niech będzie wejście n , a następnie
- Rysowana jest pozioma krawędź sześcianu
-
i składa się z 2 n znaków. - Rysowana jest pionowa krawędź sześcianu
|
i składa się z n znaków. - Rysowana jest ukośna krawędź sześcianu
/
i składa się z n / 2 znaków. - Rysowane są rogi sześcianu
+
. Narożniki nie są liczone dla długości krawędzi, jak wyszczególniono powyżej (patrz również przykłady poniżej).
Wkład:
Dane wejściowe podane na standardowym danych wejściowych to pojedyncza dodatnia, parzysta liczba n (2 ≤ n ≤ 30), która podaje długość pionowych linii sześcianu. Następnie następuje przerwa pojedynczej linii.
Wydajność:
Dane wyjściowe to sześcian na standardowym wyjściu zgodnie z powyższymi zasadami. Końcowe białe znaki w liniach są ignorowane.
Przykładowe wejście 1:
2
Przykładowy wynik 1:
+----+
/ /|
+----+ |
| | +
| |/
+----+
Przykładowe wejście 2:
4
Przykładowe wyjście 2:
+--------+
/ /|
/ / |
+--------+ |
| | |
| | +
| | /
| |/
+--------+
ETA: Teraz zaakceptowałem najkrótsze rozwiązanie. Zaktualizuję przyjętą odpowiedź, gdy pojawi się krótsza.
Ponieważ niektóre osoby pytały, jak długo trwały zgłoszenia naszych uczestników:
227 - Python
240 - Perl
310 - C
315 - C
326 - VB.NET
459 - C
Jak również nasze własne rozwiązania (niesklasyfikowane według innych):
140 - Golfscript
172 - Ruby
183 - PowerShell