Qualle , 12 11 9 Bytes
\P$'*
i
Erläuterung
Das obige Programm entspricht dem folgenden funktionalen Pseudocode:
\ P $ i '*
map_prefixes(print, reshape(input(), '*'))
Die $
(Umformung) erzeugt eine Reihe von N
Sternchen. \P
Erstellt eine Funktion, die eine Liste (oder einen String) aufnimmt und jedes ihrer Präfixe an P
(print) übergibt . Auf diese Weise werden nacheinander Zeichenfolgen 1
mit N
Sternchen gedruckt .
Martin Ender
quelle
quelle
([1..n]>>"*")
anstelle vonreplicate n'*'
ein Byte speichern. Ich zähle auch nur 39 Bytes.f 0=""
die als ein Byte gezählt wird, in einigen Texteditoren jedoch als zwei Bytes / Zeichen angezeigt wird.f x=unlines[[1..n]>>"*"|n<-[1..x]]
.Pyth, 7 Bytes
Ausgeflippt dank @ETHproductions Probieren Sie es online aus
mit @ PIetu1998's Technik
6 Bytes
quelle
"*"
mit\*
.j*L\*S
(InklusivbereichS
, jeweils*L
mit "*" multiplizieren\*
, inj
Zeilenumbrüchen einfügen) Pyth fügt am Ende ein implizites Q ein.jm*\*h
ist auch 6 Bytes.2sable ,
2411 BytesProbieren Sie es online!
Und keine Sternchen! Golfen von 24 bis 11 dank @Emigna .
Erläuterung:
quelle
õVYI
hat keinen Einfluss auf Ihren Code und kann entfernt werden.1+
ist das gleiche wie>
. Wenn Sie den Stern in der Schleife erstellen, können Sie ihn auch entfernenUX
. Durch die Verwendung×
der inneren Schleife werden noch mehr Bytes gespart. Ohne die Methode zu ändern, können Sie dies auf 11 Bytes oder weniger reduzieren.Brain-Flak 75 Bytes
Beinhaltet +3 für
-A
Probieren Sie es online!
Erläuterung:
quelle
Dyalog APL , 8 Bytes
↑
matrify die Liste bestehend aus'*'
die Saite "*"⍴⍨
umgestaltet von¨
jeder von⍳
die ganzen Zahlen 1 durch das Argument.TryAPL online!
quelle
⌸
kann ein einzelnes Byte sein:(,⍕⊢)⌸⍳
7 bytes<sup>SBCS</sup>
.V , 8 Bytes
Probieren Sie es online!
quelle
Àé
hòlÄ
!<M-@><M-i>*h<M-r>l<M-D>x
(m steht für meta, was alt bedeutet). All das sind ziemlich gute Mnemoniken für das, was der Befehl tut.JavaScript (ES6), 34 Byte
quelle
Perl 6 , 23 Bytes
(Wenn die Ausgabe eine Liste von "Zeilen" sein
.put for
darf, ohne dass Zeilenumbrüche entfernt werden können)Erläuterung:
(In der Dokumentation finden
produce
Sie Informationen, wenn Sie nicht verstehen, was Sie[\~] ...
tun.)quelle
Perl 5,
2220 BytesFühren Sie es mit dem
-E
Schalter zu bekommensay
.Geschrieben als volles Programm würde es so aussehen:
shift
undpop
implizit an@ARGV
(der Liste der Argumente) außerhalb von subs arbeiten..
ist der Bereichsoperatorsay
Beinhaltet einen Zeilenumbruchx
ist ein Operator zum Wiederholen von Strings und wird in Perlop erklärtquelle
-E
Flag zählt als 1 zusätzliches Byte.perl -E 'say"*"x$_ for 1..<>' <<< 5
-E
ist kostenlos (da es ersetzt,-e
was sowieso benötigt würde). Wenn Sie die Nummer wirklich von der Befehlszeile übernehmen möchten (warum nicht, auch wenn<>
1 Byte kürzer und zulässig ist), sollten Siepop
stattdessenshift
(2 Byte kürzer) verwenden! Wie auch immer, willkommen bei PPCG, ich freue mich, Sie beim Golfen zu sehen!Perl, 19 Bytes
-4 Bytes dank @Ton Hospel und seiner Überarbeitung der Lösung!
Benötigt freie
-E
(oder-M5.010
) Flagge zum Laufen. Nimmt eine Zahl aus der Eingabe:quelle
eval
die gleiche Länge wie diefor
Lösung (mit<>
anstelle vonpop
) miteval"s//*/;say;"x<>
J
118 BytesDank Meilen 3 Bytes gespart!
Hier ist eine Zerlegung:
Dieser letzte lautet nun "die Präfixe (
]\
) der Zeichenfolge, die ausx
Kopien von'*'
" besteht. Beobachten:Testfall
Ältere 11-Byte-Lösungen
Das ist äquivalent
1 + i.
ist die Reichweite[1, x]
. Anschließend werden'*' #~"0
auf diesen Bereich Formen (Element) von Kopien angewendet'*'
.Bonusprogramm:
Dies ist eine Gabelung mit einer Kappe,
#&'*'\
die auf das Ergebnis#&1
der Eingabe angewendet wird .#&1
Gibt ein Array vonx
Einsen und#&'*'\
Formen'*'
für die Präfixe dieses Arrays an.Testfälle
quelle
n
Kopien'*'
für 8 Bytes mit]\@#&'*'
'*'"0\@i.
Vim,
22, 18 TastenanschlägeVielen Dank an @Udioica für die fantastische Antwort, die ich erweitert habe. Diese Antwort enthält keine Sternchen, in der Hoffnung, das Kopfgeld zu gewinnen.
Erläuterung:
Die Eingabe wird vor dem Rest des Programms eingegeben. Udioica hat sich diesen tollen Trick ausgedacht. Wenn Sie tippen,
<n>O <esc>
wird eine Pyramide von Leerzeichen und eine leere Zeile erstellt, sofern Sie dies:set autoindent
aktiviert haben. Diese Option ist in vim 8 und neovim standardmäßig aktiviert, jedoch nicht in älteren Versionen von vim. Da hierdurch auch eine zusätzliche Zeile erstellt wird, verbinden wirJ
diese Zeile mit der nächsten, wodurch die unter uns liegende Zeile entfernt wird.Jetzt müssen wir alle diese Leerzeichen durch Sternchen ersetzen. Wenn ich mir keine Sorgen um die Verwendung von Sternchen in meinem Code machen würde, würde ich einfach das Ganze
<C-v>{
und den Typ visuell auswählenr*
, wodurch jedes Zeichen der Auswahl durch ein Sternchen ersetzt wird. Das kann ich aber nicht.Also öffnen wir die Hilfeseiten zu
:h r
. Das Interessante daran ist, dass diese Seite im vim-Fenster angezeigt wird als:Mit dem Cursor auf das erste 'r'. Die Datei selbst enthält jedoch tatsächlich den folgenden Text:
Ziemlich praktisch. Also bewegen wir uns mit über ein Zeichen
l
und ziehen den Textr*
mityE
([y] ank an das [E] nd dieses Wortes).Um diesen Puffer zu schließen, verwenden wir die Verknüpfung, um eine Datei zu speichern
ZZ
. Jetzt wählen wir visuell unsere Leerzeichen aus und führen den gezerrten Text so aus, als hätten wir ihn eingegeben@"
. Dies funktioniert, weil "@" das folgende Register als vim-keystrokes ausführt und "das Standardregister für das Ziehen ist.quelle
C
47464543 BytesÜbernimmt Eingaben von der Kommandozeile
Grundsätzlich gilt, wenn n nicht 0 ist, n-1 erneut. am oberen Rand der Rekursion, wo n 0 ist, wird nur eine neue Zeile ausgegeben, die for-Schleife wird beendet, wenn n -1 ist oder ~ n Null ist, andernfalls wird ASCII 42 ausgegeben, was '*' ist. Probiere es auf ideone aus
C ++ 58 Bytes + 19 für das Einschließen von iostream ist 77
quelle
&&
:n?f(n-1):0
→n&&f(n-1)
.Retina , 14 Bytes
Die Anzahl der Bytes setzt die Kodierung nach ISO 8859-1 voraus.
Probieren Sie es online!
Erläuterung
Verwandeln Sie die Eingabe
N
inN
Sternchen.Ersetzen Sie jedes Sternchen durch alles bis einschließlich dieses Sternchens (dies ist das
$`$&
) und eines Zeilenvorschubs (dies ist das¶
).quelle
MATL,
98 Bytes1 Byte gespart dank @Luis
Probieren Sie es online
quelle
Cubix , 22 Bytes
Online testen! Gibt eine nachgestellte Newline aus.
Anfangs war ich mir nicht sicher, ob ich das auf einen 2-Würfel bringen könnte, aber am Ende hat es gut geklappt:
Ich werde eine Erklärung hinzufügen, wenn ich Zeit habe, hoffentlich später heute.
quelle