Ein Octothorpe (auch Nummernzeichen, Hash oder Hashtag oder Pfundzeichen genannt) ist das folgende ASCII-Zeichen:
#
Ist das nicht eine lustige Form? Machen wir größere Versionen davon! Also hier ist deine Herausforderung:
Bei einer positiven Ganzzahl N wird ein ASCII-Hashtag der Größe N ausgegeben .
Ein ASCII-Hashtag der Größe 1 sieht beispielsweise folgendermaßen aus:
# #
#####
# #
#####
# #
Das nachgestellte Leerzeichen in jeder Zeile ist zulässig, aber nicht erforderlich.
Die Eingabe ist immer eine gültige positive Ganzzahl, sodass Sie keine Nicht-Zahlen, negativen oder 0-Werte verarbeiten müssen. Ihre Ausgabe kann in einem beliebigen vernünftigen Format erfolgen, dh sie wird an STDOUT ausgegeben und gibt eine Liste von Zeichenfolgen oder Zeichenfolgen mit zurück Zeilenumbrüche, eine 2D-Zeichenmatrix, das Schreiben in eine Datei usw. sind in Ordnung.
Testfälle
2:
## ##
## ##
##########
##########
## ##
## ##
##########
##########
## ##
## ##
3:
### ###
### ###
### ###
###############
###############
###############
### ###
### ###
### ###
###############
###############
###############
### ###
### ###
### ###
4:
#### ####
#### ####
#### ####
#### ####
####################
####################
####################
####################
#### ####
#### ####
#### ####
#### ####
####################
####################
####################
####################
#### ####
#### ####
#### ####
#### ####
5:
##### #####
##### #####
##### #####
##### #####
##### #####
#########################
#########################
#########################
#########################
#########################
##### #####
##### #####
##### #####
##### #####
##### #####
#########################
#########################
#########################
#########################
#########################
##### #####
##### #####
##### #####
##### #####
##### #####
Da dies ein Code-Golf ist, versuchen Sie, die kürzestmögliche Lösung zu schreiben und vor allem Spaß zu haben!
Antworten:
MATL ,
20161211 Bytes3 Bytes dank DJMcMayhem.
1 Byte dank Luis Mendo.
Probieren Sie es online!
Erläuterung
quelle
Zc
anstelle von35*c
und~
(logisches NICHT) anstelle von0=
Q
2<
!t*
zu&*
. Letzteres bedeutet "Multiplikation mit einem Eingang", die den Eingang mit seiner Transponierten multipliziert (elementweise)Brain-Flak , 420 Bytes
Probieren Sie es online!
Nein, die Punktzahl von 420 war nicht beabsichtigt. Das verspreche ich. Lesbare Version:
quelle
6502 Maschinencode (C64),
5956 BytesOnline-Demo
Verwendung:
SYS49152,N
wobei N eine Zahl zwischen 1 und 255 ist.(Werte größer als 4 sind für den C64-Bildschirm bereits zu groß, ab 8 ist die Ausgabe sogar zu breit)
Erklärung :
quelle
Haskell , 43 Bytes
Probieren Sie es online!
Gibt eine Liste von Zeichenfolgen aus.
quelle
Python 2 , 55 Bytes
Probieren Sie es online!
Dies gibt eine 2D-Liste von Zeichen zurück.
Python 2 , 65 Bytes
Probieren Sie es online!
Python 2 , 66 Bytes
Probieren Sie es online!
quelle
f(i);
Ergebnis in einem Temp zu speichern und daraufprint
zuzugreifen.f(i)
druckt und fügtprint
in Python 2 eine neue Zeile hinzu: PHolzkohle , 21 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Ich hatte ursprünglich einen niedlichen Bitmap-Ansatz versucht:
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung: Funktioniert unter Berücksichtigung der
#
als Array von 5 × 5 Quadraten. Die Quadrate in ungeraden Zeilen oder Spalten müssen ausgefüllt werden.quelle
J, 22 Bytes
Probieren Sie es online!
Sehr ähnlich zu der anderen J-Antwort, obwohl ich Züge mit vielen Substantiven nicht gut verstehe, hat meine Antwort drei mögliche Bytes zum Abschneiden (zwei Parens und ein Reflexiv-
~
).Erläuterung
Octothorpe generieren
Die Oktothorpe wird von allem in der Klammer hergestellt, die der Einfachheit halber unten wiedergegeben wird.
Ein Großteil der Art und Weise, wie ich die Oktothorpe herstelle, ist ein Missbrauch der Art und Weise, wie J ihre Arrays auffüllt, wenn sie nicht lang genug sind.
21,0
Erstellt einfach das Array21 0
.5$
umformt , dass die Anordnung in einen 5-Atom - Array:21 0 21 0 21
.#:
wandelt jedes Atom in eine Binärzahl um. Da#:
an jedem Atom gearbeitet wird, ist die Ausgabe eine Matrix. Jeder21
wird1 0 1 0 1
wie erwartet durch ersetzt, aber jeder0
wird durch ersetzt0 0 0 0 0
! Dies liegt daran, dass J-Pads-Arrays nicht lang genug sind, um mit der Form des resultierenden 2D-Arrays übereinzustimmen, was5 5
aufgrund der1 0 1 0 1
Zeilen erzwungen wird . Glücklicherweise wird für Zahlen, mit denen es aufgefüllt wird0
, die resultierende Matrix erhalten'# '{~
konvertiert jeweils1
zu einem Leerzeichen und0
zu#
.{
bedeutet "take" und~
bedeutet "switch the dyadic arguments", also betrachtet J jedes Element in der Matrix als Index für die Zeichenfolge,'# '
was bedeutet, dass jedes0
Element zum nullten#
und jedes1
zum ersten Element, einem Leerzeichen, wird. Dies ergibt die Größe einer Oktothorpe.Größe der Oktothorpe ändern
Dies ist einfach eine Frage der Kopierzeiten
n
entlang jeder Achse, die mit ausgeführt werdender erste
#
(der Teil eines Hakens ist) und#~"1]
.#
Kopien entlang der horizontalen Achse und#"1
Kopien entlang der vertikalen Achse.quelle
##"1&('# '{~#:5$21,0)
Speichert ein Byte.CJam,
272625 BytesProbieren Sie es online!
Unterhaltsame Tatsache: Dies begann ursprünglich mit 29 Bytes, und Bytes wurden seitdem nacheinander entfernt, wobei zwischen Block- und Vollprogramm-Modus gewechselt wurde.
Erläuterung:
quelle
Schale ,
1210 BytesProbieren Sie es online! Beachten Sie das nachfolgende Leerzeichen.
Erläuterung
quelle
J ,
2319 Bytes4 Bytes dank @LeakyNun gespart.
Probieren Sie es online!
Erläuterung
quelle
[:|:f
könnte sein0|:f
' # '{~]#"1]#+./~@i:@2
speichert ein Bytef=:' #'{~1=]+./~@#i:@2
Jelly ,
141311 Bytes2 Bytes dank @JonathanAllen gespart
Ein monadischer Link, der eine Liste von Zeilen zurückgibt. Beachten Sie das nachfolgende Leerzeichen.
Probieren Sie es online!
Wie es funktioniert
quelle
µ
(oder der, die⁸
Sie stattdessen dort gehabt haben könnten) ...5ẋ€Ẏ&þ`ị⁾ #
5Ḷẋ€
dasµ
, aber nicht5ẋ€
?Ẏ
handelnn
und es dann rechts von weitergebenẋ€
, da eine Nilad-Dyad-Leitkette nicht monadisch genannt werden muss. Ich bin mir jedoch nicht ganz sicher, wie ich`
dann 5 (oder vielleicht die Liste dieser Länge) auf der rechten Seite des Tisches platzieren soll&
.Game Maker Language,
138108 BytesBestimmt als Skript (Game Maker Name für benutzerdefinierte Funktionen), also das
n=argument0
undreturn s
. 20 Bytes könnten rasiert werden, indemn
direkt von der aktuellen Instanz genommen unds
als Ergebnis verwendet wird. (Die Instanz bekommt diese Variablen trotzdem, weil sie nicht mit deklariert wurdenvar
).Achtung,
#
das wird von Game Makers Grafik als alternatives Newline-Zeichen verwendet. Du solltest es also mit einem Präfix versehen,\
wenn du es auf dem Bildschirm ausgeben möchtest.Beachten Sie auch, dass ich hier die GML-Version von Game Maker 8.0 verwende. Moderne GML-Versionen verfügen möglicherweise über Funktionen, mit denen zusätzliche Bytes eingespart werden können.
Einige Ideen mit freundlicher Genehmigung von Freunden wareya und Chordbug.
quelle
Perl 5 , 49 + 1 (-p) = 50 Bytes
Probieren Sie es online!
Wie?
Speichern Sie die Eingabe implizit in $ _ über das
-p
Flag. Beginnen Sie mit der grundlegendsten Top-Line" # # "
mit der folgenden Newline. Replizieren Sie jedes dieser Zeichen mit der eingegebenen Nummer. Dann repliziere das mit der eingegebenen Zahl, um den oberen Teil des Oktothors zu bilden, und speichere alles zurück in $ . Fügen Sie dann die Zeile mit allen Zeichen hinzu, die durch '#' und die eingegebene Nummer ersetzt wurden. Dann hängen Sie den oberen Abschnitt an. Machen Sie die letzten beiden Sätze insgesamt zweimal. Die Ausgabe des $ ist im-p
Flag enthalten.quelle
05AB1E ,
252221 BytesProbieren Sie es online!
-1 weil Emigna transliterieren hasst und mich zum Glück daran erinnert, dass ich es auch tun sollte: P.
Muss ein besserer Weg sein, als es zu mappen ... Ich arbeite immer noch.
quelle
5ôεS„# èJ¹F=
Speichert ein Byte.JavaScript (ES6), 79 Byte
Port des Bitmap-Ansatzes, den ich für meinen ursprünglichen Charcoal-Versuch verwendet hatte.
quelle
Python 2 ,
124,116,113,112,98,96,66 BytesNeu (Bildnachweis: HyperNeutrino):
Alt:
Probieren Sie es online!
Natürlich nicht die kürzeste Lösung, aber ich finde es anständig. Über Feedback würde ich mich freuen!
quelle
a,b,c=input()," #"
sollte einige Bytes sparen.a,b,c=input(),"#"," "
? Welches ist nicht kürzer ... Ich schätze die Hilfe!a,b="# "
funktioniert.a=input();b,c="# "
wird funktionieren und Bytes speichern(i==2)
und dem Anfang ein Leerzeichen hinzufügen.Brain-Flak ,
338332 Bytes6 Bytes danke an Riley.
Probieren Sie es online!
Mehr "lesbare" Version
Probieren Sie es online!
quelle
(({})<>)(())<>({}<>)
zu Beginn kann ersetzt werden durch(({}<>)<(())>)
SOGL (SOGLOnline Commit 2940dbe) , 15 Bytes
Laden Sie dies herunter und führen Sie den Code in der
index.html
Datei aus , um dies auszuführen .Verwendet das bei diesem Commit (und davor)
*
jedes Zeichen und nicht die gesamte Zeichenfolge wiederholt wird.Erläuterung:
Bonus: 2 Eingänge für separate X- und Y-Länge hinzufügen!
quelle
ø─Ζ┘Χ⁴‘
das so ist?#
und den für diese Zeichenfolge erforderlichen Basis-2-Daten gespeichert wird.Brainfuck , 224 Bytes
Probieren Sie es online!
Making-of
Ich habe versucht, diesen Code von Hand zu erstellen, und einige Stunden damit verbracht, einen Transpiler in Python zu erstellen.
Hier ist der Code, den ich eingegeben habe, um diesen Code zu machen:
Probieren Sie es online!
quelle
C (GCC) ,
9893 Bytes5 Bytes dank Felix Palmen.
Probieren Sie es online!
quelle
Gaia , 9 Bytes
Ziemlich genau die richtige Antwort von Zgarb
Probieren Sie es online! (Die Fußzeile ist nur zu schön gedruckt, das Programm selbst gibt eine 2D-Liste von Zeichen zurück.)
Erläuterung
quelle
Befunge ,
105103 BytesProbieren Sie es online!
quelle
Python,
888477 BytesProbieren Sie es online!
Gibt eine 2D-Liste von Zeichen zurück.
quelle
PowerShell ,
72686360 ByteProbieren Sie es online!
Übernimmt die Eingabe
$a
. Dann führen wir eine ReihemagischerManipulationen an Strings und Arrays durch.Sie können die Teile der Erklärung von unten abschälen, um zu sehen, wie die Ausgabe aufgebaut ist. Hoffentlich macht meine Erklärung also Sinn.
quelle
Haskell, 72 Bytes
Gibt eine Liste von Zeichenfolgen zurück. Probieren Sie es online!
Wie es funktioniert:
quelle
Mathematica, 63 Bytes
Erläuterung
(1)
-##
analysiert inTimes[-1, ##]
quelle
ArrayFlatten
ist sehr nett.Python 2, 113 Bytes
Als eine Reihe von Zeichenfolgen:
Als ASCII-Kunst:
Python 3, 115 Bytes
Python 3, 117 Bytes
Als Array von Booleschen WertenPython 2, 75 Bytes
quelle
Java 8, 103 Bytes
Lambda akzeptiert
Integer
und druckt die Oktothorpe gemäß Standard aus. Besetzung fürConsumer<Integer>
.Probieren Sie es online
Ungolfed Lambda
Die Schlüsselbeobachtung ist hier, dass, auf einem 5 x 5 Raster von n von n - Zellen, octothorpes erscheinen , wo die Zeilen- oder Spaltennummer (0-basierte) ungerade ist . Ich bin mir ziemlich sicher, dass dies der billigste allgemeine Ansatz ist, aber er scheint weiterhin Golf zu spielen.
Danksagung
quelle
int s=5*n,x=0,y
stattdessen die for-Schleife platzieren, um ein Byte im Semikolon zu speichern.Pyth ,
2822 Bytes-6 Bytes dank @LeakyNun
Test Suite.
quelle
R ,
878562 Bytes2 Bytes gespart, indem c (F, T) dank LeakyNun als! 1: 0 dargestellt wird
23 Bytes gespart dank Giuseppe
Probieren Sie es online!
Erklärung (ungolfed):
quelle