In einer nun gelöschten Stapelüberlauf-Frage hat jemand Folgendes gepostet:
Schreiben eines Programms oder der Funktion zum Drucken in alternierenden Muster *und #basierend auf einer vorgegebenen ganzen Zahl n. Einige Beispiele:
Eingabe: n=1
Ausgabe:
*
Eingabe n=5
Ausgabe:
*####
###**
***##
###**
*####
Eingabe: n=8
Ausgabe:
*#######
######**
***#####
####****
****####
#####***
**######
#######*
Da es wie eine ziemlich coole Code-Golf-Herausforderung aussah, ist es hier.
Wie sind diese Muster aufgebaut?
Die erste Zeile beginnt mit einer einzelnen *, gefolgt von der n-1Anzahl der nachfolgenden Zeilen #.
Die zweite Zeile enthält dann zwei Zeilen *mit der n-2Anzahl der führenden Zeilen #.
Die dritte Zeile beginnt mit drei *, gefolgt von einem n-3Nachlauf #.
etc.
Sobald wir die Mitte ( n/2) erreicht haben, zählen wir wieder mit dem Betrag von zurück *, der in den obigen Beispielen zu sehen ist.
HINWEIS: Bei ungeraden Eingaben ist das invertierte Zeilenpaar (also zuerst und zuletzt; zweitens und vorletztes usw.) genau dasselbe. Im n=5Beispiel sind die erste und letzte Zeile *####; Die vorletzte und die vorletzte Zeile sind ###**.
Bei geraden Eingaben wird jedoch das umgekehrte Zeilenpaar umgekehrt. Im n=8Beispiel sind die erste und letzte Zeile *#######und #######*; die vorletzte und die vorletzte Zeile sind ######**und **######; etc.
Herausforderungsregeln:
- Sie können anstelle von und zwei verschiedene druckbare Zeichen verwenden . Sie können und verwenden ; und ; und ; usw. Bitte geben Sie in Ihren Antworten an, was Sie verwendet haben.
*#AB37<> - Sie können davon ausgehen, dass
nes sich um eine positive Ganzzahl handelt (>= 1) - Sie können eine Liste / ein Array von Zeichenfolgen für jede Zeile oder eine 2D-Zeichenmatrix ausgeben, anstatt sie an STDOUT zu drucken.
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
- Außerdem wird dringend empfohlen, eine Erklärung für Ihre Antwort hinzuzufügen.
Testfälle (zuerst n=1durch n=10)
*
*#
#*
*##
#**
*##
*###
##**
**##
###*
*####
###**
***##
###**
*####
*#####
####**
***###
###***
**####
#####*
*######
#####**
***####
###****
***####
#####**
*######
*#######
######**
***#####
####****
****####
#####***
**######
#######*
*########
#######**
***######
#####****
*****####
#####****
***######
#######**
*########
*#########
########**
***#######
######****
*****#####
#####*****
****######
#######***
**########
#########*