Votre tâche consiste à saisir une entrée entière et à imprimer un motif en zigzag à l'aide de barres obliques et de barres obliques inverses.
- L'entrée entière détermine la longueur de chaque zig et zag, ainsi que le nombre de zig et de zags
- Le motif commence toujours de droite à gauche
Cas de test
4->
/
/
/
/
\
\
\
\
/
/
/
/
\
\
\
\
2->
/
/
\
\
0->
1->
/
8->
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
Réponses:
C (gcc) ,
10810210198807672 octetsN-n-1
au golfN+~n
Z
l'incrémentation dans la condition de boucleprintf("%c\n",...)
au lieu deputchar(...)
et,puts("")
printf("%*s",n,"");
pour imprimer desn
espaces au lieu d'utiliser une bouclej;for(j=n;j--;)putchar(32);
et de combiner les deuxprintf(...);
appelsprintf("%*c",-~n,...);
au lieu deprintf("%*s%c",n,"",...);
Essayez-le en ligne!
la source
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 octets . Supprimé les accolades en mettant tout à l'intérieur des boucles; et changéN-n-1
enN+~n
.Z%2?...:...
et en les remplaçantZ<N;Z++
parZ++<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);}
. Essayez-le en ligne!Fusain ,
16109 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code.
la source
InputNumber
cassé en mode golfy?)MATL , 17 octets
Essayez-le en ligne!
Explication
la source
C # (.NET de base) ,
117103101 octetsEssayez-le en ligne!
la source
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 octets Vous n'avez pas besoin de toutes ces parenthèses; vous pouvez combiner leint
; et ajoutez seulement+"\n"
une fois.a=>{for(int z=a+1,e=0;e<a*a;)System.Console.WriteLine(e++/a%2<1?"/".PadLeft(--z):@"\".PadLeft(z++));}
101 octetsSOGL V0.12 ,
13129 octetsEssayez-le ici!
pourrait être de 8 octets
╝F{±↔}P}
si le cas de test 0 n'était pas requisExplication:
la source
Python 2 ,
696862 octets-1 octet grâce à Jonathan Frech
Essayez-le en ligne!
la source
Mathematica, 84
90octetsJe n'ai aucune idée pourquoi
\
est évidemment plus sombre que/
.la source
(n=#;Grid@Array[If[Abs[n-(s=Mod[#-1,2n])-.5]==#2-.5,If[s<n,"/","\\"],""]&,{n^2,n}])&
Jq 1,5 ,
9489 octetsExplication
Sample Run
Essayez-le en ligne!
la source
Java 8,
140134116 116 octets-24 octets grâce à @Nevay .
Explication:
Essayez-le ici.
la source
c-->f*(b-n-~b)
(-6 octets).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 octets* réduit 1 octet avec ES8 grâce à Shaggy
Testez ici
la source
i
un paramètre par défaut. Le nombre d'octets semble également désactivé.Pyth , 20 octets
Essayez-le en ligne!
la source
PowerShell , 81 octets
Essayez-le en ligne!
Ugh, c'est moche. Tant de code répété, plus 7 octets requis pour tenir compte du
0
cas spécial. Suggestions de golf bienvenues.la source
Pyth, 17 octets
Essayez-le en ligne: Démonstration
Explication:
la source
Python 3:
90 octets82 octetsMerci à @Jonathan Frech d'avoir souligné que l'impression n'était pas nécessaire et que le premier zig était dans le mauvais sens
la source
] for
->]for
.print(...)
, une fonction renvoyant une chaîne serait valide. De plus, je pense que votre zig initial est mal orienté (\ plutôt que /).(abs(...)-1)
->~-abs(...)
.05AB1E ,
1716 octetsEssayez-le en ligne!
Explication
Meilleure tentative actuelle d'utilisation du canevas:
la source
C ++,
9291 octets-1 octets grâce à Kevin Cruijssen
Grâce au pouvoir de la magie
printf
la source
int i=0,j
dans la boucle forfor(int i=0,j;i<n;++i)
pour enregistrer un octet.Java (OpenJDK 8) ,
13110698969491 octetsEssayez-le en ligne!
la source
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 octets).Dyalog APL ,
39363534 octetsEssayez-le en ligne!
1 octet économisé grâce à Zacharý
la source
⎕IO
être0
, puis supprimer¯1+
.(⌽,⊢)⍳⍵
au lieu de(⌽⍳⍵),⍳⍵
Perl 5 , 70 + 1 (
-n
) = 71 octetsEssayez-le en ligne!
la source
Kotlin , 102 octets
Essayez-le en ligne!
la source
Excel VBA,
8483 octetsFonction de fenêtre immédiate VBE anonyme qui prend les entrées de la plage
[A1]
et les sorties vers la fenêtre immédiate VBEla source
Gelée , 15 octets
Essayez-le en ligne!
Programme complet.
la source
Haskell ,
8685 octetsEssayez-le en ligne!
Un octet enregistré grâce à Laikoni
Répétez un zig ++ un zag et prenez les premières
n*n
lignes.la source
cycle$ ...
au lieu d'cycle( ... )
enregistrer un octet.J ,
39 35 33 3225 octetsEssayez-le en ligne!
la source
Dyalog APL,
4140 octets⎕IO
doit être0
.Essayez-le en ligne!
la source
D , 105 octets
Essayez-le en ligne!
Tiré de la réponse C ++ de HatsuPointerKun.
la source