Ihre Aufgabe ist es, eine Ganzzahleingabe aufzunehmen und ein Zick-Zack-Muster mit Schrägstrichen und Backslashes zu drucken.
- Die Ganzzahleingabe bestimmt die Länge jedes Zicks und Zacks sowie die Anzahl der Zicks und Zacks
- Das Muster beginnt immer von rechts nach links
Testfälle
4->
/
/
/
/
\
\
\
\
/
/
/
/
\
\
\
\
2->
/
/
\
\
0->
1->
/
8->
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
Antworten:
C (gcc) ,
10810210198807672 BytesN-n-1
aufN+~n
Z
die Inkrementierung in die Schleifenbedingung verschoben wurdeprintf("%c\n",...)
stattputchar(...)
und,puts("")
printf("%*s",n,"");
, umn
Leerzeichen zu drucken , anstatt eine Schleife zu verwendenj;for(j=n;j--;)putchar(32);
und beideprintf(...);
Aufrufe zu kombinierenprintf("%*c",-~n,...);
anstelle von gespeichertprintf("%*s%c",n,"",...);
Probieren Sie es online!
quelle
Z,n,j;f(N){for(Z=0;Z<N;Z++)for(n=N;n--;putchar(Z%2?92:47),puts(""))for(j=Z%2?N+~n:n;j--;)putchar(32);}
102 Bytes . Entfernen Sie die geschweiften Klammern, indem Sie alles in die Schlaufen stecken. und geändertN-n-1
zuN+~n
.Z%2?...:...
und ersetzenZ<N;Z++
mitZ++<N;
.i;f(N){for(i=0;i<N*N;i++)printf("%*c\n",i/N%2?i%N+1:N-i%N,i/N%2?92:47);}
. Probieren Sie es online!Holzkohle ,
16109 BytesProbieren Sie es online! Link ist eine ausführliche Version des Codes.
quelle
InputNumber
im Golf-Modus kaputt?)MATL , 17 Bytes
Probieren Sie es online!
Erläuterung
quelle
C # (.NET Core) ,
117103101 BytesProbieren Sie es online!
quelle
a=>{var o="";for(int z=a+1,e=0;e<a*a;)o+=(e++/a%2<1?"/".PadLeft(--z):@"\".PadLeft(z++))+"\n";return o;}
103 Bytes Sie benötigen nicht alle diese Klammern; Sie können das kombinierenint
; und nur+"\n"
einmal hinzufügen .a=>{for(int z=a+1,e=0;e<a*a;)System.Console.WriteLine(e++/a%2<1?"/".PadLeft(--z):@"\".PadLeft(z++));}
101 BytesSOGL V0.12 ,
13129 BytesProbieren Sie es hier aus!
könnte 8 Bytes sein,
╝F{±↔}P}
wenn der 0-Testfall nicht erforderlich wäreErläuterung:
quelle
Python 2 ,
696862 Bytes-1 Byte danke an Jonathan Frech
Probieren Sie es online!
quelle
Mathematica, 84
90BytesIch habe keine Ahnung warum
\
das offensichtlich dunkler ist als/
.quelle
(n=#;Grid@Array[If[Abs[n-(s=Mod[#-1,2n])-.5]==#2-.5,If[s<n,"/","\\"],""]&,{n^2,n}])&
Jq 1,5 ,
9489 BytesErläuterung
Probelauf
Probieren Sie es online!
quelle
Java 8,
140134116 Bytes-24 Bytes dank @Nevay .
Erläuterung:
Probieren Sie es hier aus.
quelle
c-->f*(b-n-~b)
(-6 Bytes) geschrieben werden.n->{String r="";for(int a=0,b,c;a++<n;)for(b=n;b-->0;r+=a%2>0?"/\n":"\\\n")for(c=b-n+b|-a%2;++c<b;r+=" ");return r;}
Javascript ES8,
83797876757471 Bytes* 1 Byte mit ES8 dank Shaggy reduziert
Hier testen
quelle
i
einen Standardparameter festlegen. Die Byteanzahl scheint ebenfalls aus zu sein.Pyth , 20 Bytes
Probieren Sie es online!
quelle
Power Shell , 81 Byte
Probieren Sie es online!
Ugh, das ist hässlich. So viel wiederholter Code, plus 7 Bytes, um den
0
Sonderfall zu berücksichtigen . Golfvorschläge sind willkommen.quelle
Pyth, 17 Bytes
Probieren Sie es online aus: Demonstration
Erläuterung:
quelle
Python 3:
90 Bytes82 BytesVielen Dank an Jonathan Frech, der darauf hingewiesen hat, dass der Ausdruck nicht erforderlich war und dass das erste Zickzack der falsche Weg war
quelle
] for
->]for
.print(...)
, eine Funktion, die einen String zurückgibt, wäre gültig. Ich denke auch, dass Ihr anfängliches Zickzack falsch ausgerichtet ist (\ statt /).(abs(...)-1)
->~-abs(...)
.05AB1E ,
1716 BytesProbieren Sie es online!
Erläuterung
Derzeit bester Versuch mit Canvas:
quelle
C ++,
9291 Bytes-1 Bytes dank Kevin Cruijssen
Dank der Kraft der Magie
printf
quelle
int i=0,j
die for-Schleife einfügenfor(int i=0,j;i<n;++i)
, um ein Byte zu speichern.Java (OpenJDK 8) ,
13110698969491 BytesProbieren Sie es online!
quelle
i->{for(int j=0;j<i*i;System.out.printf("%"+(j/i%2<1?i-j%i+1:j%i+2)+"s",j++/i%2<1?"/\n":"\\\n"));}
(98 Byte).Dyalog APL ,
39363534 BytesProbieren Sie es online!
Dank Zacharý 1 Byte gespart
quelle
⎕IO
sein0
, und dann entfernen¯1+
.(⌽,⊢)⍳⍵
Statt(⌽⍳⍵),⍳⍵
Perl 5 , 70 + 1 (
-n
) = 71 BytesProbieren Sie es online!
quelle
Kotlin , 102 Bytes
Probieren Sie es online!
quelle
Excel VBA,
8483 BytesAnonyme VBE-Direktfensterfunktion, die Eingaben aus dem Bereich
[A1]
und Ausgaben in das VBE-Direktfenster übernimmtquelle
Gelee , 15 Bytes
Probieren Sie es online!
Volles Programm.
quelle
Haskell ,
86-85BytesProbieren Sie es online!
Dank Laikoni ein Byte gespart
Wiederhole ein Zick-Zack und nimm die ersten
n*n
Zeilen.quelle
cycle$ ...
stattcycle( ... )
speichert ein Byte.J ,
39 35 33 3225 BytesProbieren Sie es online!
quelle
Dyalog APL,
41 bis40 Bytes⎕IO
muss sein0
.Probieren Sie es online!
quelle
D , 105 Bytes
Probieren Sie es online!
Aufgehoben aus der C ++ - Antwort von HatsuPointerKun.
quelle