Wir danken Adnan für diese Herausforderung.
Meine letzte Herausforderung, bevor ich in die Pause gehe .
Aufgabe
Angesichts positive ganze Zahl n
, wenn n
ungerade ist, wiederholen , /
dass viele Male; Wenn n
gerade, wiederholen Sie \
das viele Male.
(Im Ernst, die Testfälle wären viel klarer als diese Beschreibung, schauen Sie sich also einfach die Testfälle an.)
Technische Daten
- Beliebiges vernünftiges Eingabe- / Ausgabeformat.
- Es gelten Standardlücken .
Testfälle
n output
1 /
2 \\
3 ///
4 \\\\
5 /////
6 \\\\\\
f=n=>...
, können Sie es direkt anrufen:(n=>...)(5)
. (Oder wenn Sie die Node.js REPL verwenden, dann könnten Sie verwendenthis._
, was für das zuletzt eingegebene steht)Python, 20 Bytes
quelle
05AB1E / 2sable ,
151198 Bytes-2 Bytes dank Leaky Nun
-1 Byte danke an Emigna
Probieren Sie es online! in 05AB1E
oder in 2sable
quelle
sè×
😮"/\"
kann „/ \Perl, 20 Bytes
Beinhaltet +1 für
-p
Mit Eingabe auf STDIN ausführen:
squigly.pl
quelle
-p
Option verwenden? Ich benutze;
im Transliterat genau das, weil am Ende des Codes-p
ein impliziter;
Code steht, damit ich 1 Byte mehr sparen kann. Dies hat seit mindestens Perl 5.6 funktioniert (wahrscheinlich, solange die-p
Option tatsächlich bestand);
hinzugefügten von-p
ist ziemlich klasse, gut gemacht.Netzhaut , 21
Probieren Sie es online aus (Erste Zeile hinzugefügt, damit mehrere Testfälle ausgeführt werden können).
quelle
C #, 42 Bytes
Wählt das richtige Zeichen aus und erstellt dann eine neue Zeichenfolge, die dieses Zeichen wiederholt enthält
n
.quelle
PHP, 38 Bytes
(Variante 38 Bytes)
(Variante 38 Bytes)
(Variante 40 Bytes)
quelle
C 40 Bytes
Probieren Sie es auf Ideone
quelle
putchar(92-n%2*45)
ist die gleiche Länge.Gelee , 5 Bytes
Probieren Sie es online! oder Überprüfen Sie alle Testfälle.
quelle
Ø^
das Byte kürzer ist als⁾/\
.J, 10 Bytes
Dies ist ein Verb mit sechs Zügen, bestehend aus:
Dies ist ein Haken zwischen
#
und('\/' {~ 2 | ])
; Ein Haken wird auf(f g) y
erweiterty f (g y)
, sodass dieser auf erweiterty # (... y)
wird. Bei Einzelzeichen wird eine Liste vony
Zeichen angezeigt.Der zweite Teil ist ein 5-Zug, bestehend aus:
Dies ergibt zwei Gabeln:
Die innere Gabel
2 | ]
ist Modul zwei. Die äußere Gabel ist daher:Welches nimmt (
{~
) den Mod2-Index (mod2
) aus dem String/
.Dann mit dem Haken von oben:
Dies ergibt, was wir wollen, und wir sind fertig.
quelle
Haskell, 25 Bytes
-1 Byte danke an Damien mit
cycle
.quelle
f n=cycle"\\/"!!n<$[1..n]
Mathematica,
343228 BytesAnonyme Funktion. Nimmt eine Ganzzahl als Eingabe und gibt eine Liste von Zeichen als Ausgabe zurück.
quelle
~Table~#
.<>""
und eine Liste von Zeichen zurückgeben können.~Do~Infinity
und solche in 10.2+ als gut ...Powershell,
3027 BytesAktualisieren:
Wechseln zu
param
, dank Timmyd .oder etwas besser lesbar
Prüfung:
quelle
param($n)
statt$args
wie folgt 27 Bytesparam($n)('\','/')[$n%2]*$n
Mathematica, 29 Bytes
Grausam nutzt die Tatsache aus, dass
[[1]]
das erste Argument einer Funktion zurückgegeben wird, während[[0]]
die Funktion (head) selbst zurückgegeben wird, die auf die seltsam gültige Funktion namens angewendet"\\"
wird, bei der "ausgewertet" wird"/"
.quelle
a[b]
nur ein generischer Ausdruck mit heada
(Index0
) und elementb
(Index1
) ist und Funktionen nur spezielle Ausdrucksarten sind (eigentlich wäre es richtiger zu sagen, dass Funktionen nicht ' t Ausdrücke überhaupt, sondern sind lediglich Regeln für die Transformation von Ausdrücken, die normalerweise eine Form habenf[x...]
. :)Ruby, 15 Bytes
Sieh es dir auf eval.in an: https://eval.in/632030
quelle
Fourier, 27 Bytes
Probieren Sie es online!
quelle
Brachylog , 15 Bytes
Probieren Sie es online!
Erläuterung
quelle
CJam , 9 Bytes
Probieren Sie es online!
Erläuterung
quelle
> <> (Fisch), 30 Bytes
Ich habe diese Sprache zum ersten Mal verwendet, aber ich glaube, ich habe zumindest ein wenig Platz gespart, indem ich das / bedingt entweder als Teil der Ausgabe oder als Spiegel verwendet habe, um den Fluss umzuleiten. Wahrscheinlich immer noch schrecklich ineffizient, aber ich glaube, es könnte zumindest ein bisschen mehr gekürzt werden.
Eingabe ist der Anfangsstapel, Ausgabe ist
stdout
Probieren Sie es online!
quelle
Dyalog APL , 11 Bytes
Benötigt,
⎕IO←0
was auf vielen Systemen Standard ist.⊢
das Argument⍴
Umformen (Wiederholungen)'\/'⊃⍨
die von ausgewählte Zeichenfolge "/"2|⊢
der Rest der Division, wenn das Argument durch zwei geteilt wirdTryAPL online!
quelle
Java 7,
6865 Bytes3 Bytes gespart dank @ user902383 und @SeanBean .
Genau wie bei dieser Antwort scheint sich das kürzeste Code-Golf zu wiederholen und auszudrucken. Beides rekursiv und
void c(int i){System.out.print(new String(new char[i]).replace("\0",i%2<1?"\\":"/"));}
scheint länger zu sein.
Ungolfed & Testcode:
Probieren Sie es hier aus.
Ausgabe:
quelle
x=-1;++x<i
, könnenx=0;x++<i
Sie um ein Byte reduzieren"\\" : "/"
mit92:'/'
;)R,
4746 BytesIn R müssen Sie Backslashes umgehen. Das Argument
sep
muss auch vollständig angegeben werden, da es danach kommt...
. Also ärgerlich wenig Möglichkeiten um Zeichen zu sparen :(Vielen Dank an Bouncyball für das Abschlagen eines Bytes.
quelle
n=scan();cat(rep(c('\\','/')[n%%2+1],n),sep='')
T-SQL 50 Bytes
Natürlich nicht
STDIN
hier, also nehmen wir eine fest codierteINT
Variable wie diese an:DECLARE @ INT
dann lautet die Lösung:quelle
Pip , 8 Bytes
Einfach. Verwendet die modulare Indizierung, um die Zeichen- und Zeichenfolgenwiederholung zum Multiplizieren auszuwählen. Probieren Sie es online!
Diese Frage bietet einen interessanten Vergleich zwischen Pip, Pyth und Jelly , wobei die beiden letzteren jeweils 5 Bytes erreicht haben. Alle drei Sprachen haben eine implizite Ausgabe mit einzelnen Zeichenoperatoren für die modulare Indizierung und die Wiederholung von Zeichenfolgen und müssen keine umgekehrten Schrägstriche in Zeichenfolgen enthalten. Es gibt jedoch zwei wesentliche Unterschiede:
Keines dieser Features wird wahrscheinlich in Pip 1 angezeigt (ich mag die Ästhetik von unsymmetrischen Begrenzern nicht, und eine punktfreie Syntax oder implizite Operanden scheinen meinem Parser für Infix-Ausdrücke zu fremd zu sein), aber ich Ich kann die dritte Geige spielen. Auch wenn "Lesbarkeit" beim Golfen extrem relativ ist, würde ich behaupten, dass diese drei zusätzlichen Bytes das Pip-Programm auf einen Blick viel leichter verständlich machen - und in meinem Buch ist das ein lohnender Kompromiss.
1 Einzelne Zeichenfolgen in Pip verwenden jedoch ein einzelnes
'
Trennzeichen, das von CJam inspiriert und in Lisp zitiert wurde.quelle
code golf
:! =golflang design
. Nun können Sie durchaus argumentieren, dass das gleiche Prinzip (kürzer ist immer besser) auch für das Sprachdesign gilt. Ich sage nur , dass für mich, Benutzerfreundlichkeit und auch Ästhetik sind Überlegungen.Pyth , 5 Bytes
Testsuite.
Modulare Indizierung in den String
\/
und dann wiederholen.quelle
Perl 6 , 16 Bytes
Verwendung:
quelle
Julia, 20 Bytes
quelle
SpecBAS - 28 Bytes
ODD
Gibt 1 zurück, wenn die Zahl ungerade ist, und verwendet diese als Index, um das richtige Zeichen n-mal zu drucken. Es muss 1 hinzugefügt werden, da SpecBAS-Zeichenfolgen bei Zeichen 1 beginnen.quelle
Java 8, 56 Bytes
Ich möchte mich bei Kevin Cruijssen in Advanced für das weitere Golfspielen bedanken.
Ungolfed-Testprogramm
quelle
Eigentlich 10 Bytes
Golfvorschläge sind willkommen. Probieren Sie es online!
Wie es funktioniert
quelle