W teraz usuniętym pytaniu dotyczącym przepływu stosów ktoś opublikował następujące informacje:
Napisać program lub funkcję do drukowania wzorów zmiennego *i #na podstawie danej liczby całkowitej n. Kilka przykładów:
Wejście: n=1
Wyjście:
*
Dane n=5
wyjściowe:
*####
###**
***##
###**
*####
Wejście: n=8
Wyjście:
*#######
######**
***#####
####****
****####
#####***
**######
#######*
Ponieważ wyglądało to na całkiem fajne wyzwanie do gry w golfa, oto jest.
Jak budowane są te wzorce?
Pierwszy wiersz zaczyna się od pojedynczego *, a po nim n-1końcowy #.
Drugi wiersz zawiera dwa *, z n-2prowadzeniem #.
Trzecia linia zaczyna się od trzech *, po których następuje n-3końcowa liczba #.
itp.
Gdy osiągniemy środek ( n/2), odliczamy ponownie ilość *, co można zobaczyć w powyższych przykładach.
UWAGA: w przypadku nieparzystych liczb wejściowych odwrócona para wierszy (pierwsza i ostatnia; druga i następna ostatnia; itd.) Są dokładnie takie same. W n=5przykładzie pierwsza i ostatnia linia to *####; druga i ostatnia linia to ###**.
Jednak dla parzystych liczb wejściowych odwrócona para linii jest odwrócona. W n=8przykładzie pierwszą i ostatnią linią są *#######i #######*; drugą i ostatnią linią są ######**i **######; itp.
Zasady konkursu:
- Możesz użyć dowolnych dwóch różnych znaków drukowalnych zamiast
*i#. Możesz użyćAiB;3i7;<i>; itp. Podaj w swoich odpowiedziach, czego użyłeś. - Możesz założyć
n, że będzie dodatnią liczbą całkowitą (>= 1) - Możesz wydrukować listę / tablicę ciągów dla każdej linii lub macierz 2D znaków, zamiast drukować je do STDOUT.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki kod-golfowe zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i zwracanymi typami, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem swojego kodu.
- Zalecane jest również dodanie wyjaśnienia do odpowiedzi.
Przypadki testowe (od pierwszego n=1do drugiego n=10)
*
*#
#*
*##
#**
*##
*###
##**
**##
###*
*####
###**
***##
###**
*####
*#####
####**
***###
###***
**####
#####*
*######
#####**
***####
###****
***####
#####**
*######
*#######
######**
***#####
####****
****####
#####***
**######
#######*
*########
#######**
***######
#####****
*****####
#####****
***######
#######**
*########
*#########
########**
***#######
######****
*****#####
#####*****
****######
#######***
**########
#########*