Su tarea es tomar una entrada entera e imprimir un patrón de zigzag usando barras y barras invertidas.
- La entrada entera determina la longitud de cada zig y zag, así como la cantidad de zigs y zags
- El patrón siempre comienza de derecha a izquierda.
Casos de prueba
4->
/
/
/
/
\
\
\
\
/
/
/
/
\
\
\
\
2->
/
/
\
\
0->
1->
/
8->
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
/
/
/
/
/
/
/
/
\
\
\
\
\
\
\
\
Respuestas:
C (gcc) ,
10810210198807672 bytesN-n-1
aN+~n
Z
el incremento en la condición de bucleprintf("%c\n",...)
lugar deputchar(...)
y,puts("")
printf("%*s",n,"");
para imprimirn
espacios en lugar de usar un buclej;for(j=n;j--;)putchar(32);
y combinando ambasprintf(...);
llamadasprintf("%*c",-~n,...);
lugar deprintf("%*s%c",n,"",...);
Pruébalo en línea!
fuente
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 . Se eliminaron los corchetes poniendo todo dentro de los bucles; y cambiadoN-n-1
aN+~n
.Z%2?...:...
y reemplazandoZ<N;Z++
conZ++<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);}
. Pruébalo en línea!Carbón ,
16109 bytesPruébalo en línea! El enlace es a la versión detallada del código.
fuente
InputNumber
rompió en el modo de golf?)MATL , 17 bytes
Pruébalo en línea!
Explicación
fuente
C # (.NET Core) ,
117103101 bytesPruébalo en línea!
fuente
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 No necesita todos esos paréntesis; puedes combinar elint
; y solo agregue+"\n"
una vez.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 bytesPruébalo aquí!
podría ser de 8 bytes
╝F{±↔}P}
si no se requiere el caso de prueba 0Explicación:
fuente
Python 2 ,
696862 bytes-1 byte gracias a Jonathan Frech
Pruébalo en línea!
fuente
Mathematica, 84
90bytesNo tengo idea de por qué
\
es obviamente más oscuro que/
.fuente
(n=#;Grid@Array[If[Abs[n-(s=Mod[#-1,2n])-.5]==#2-.5,If[s<n,"/","\\"],""]&,{n^2,n}])&
Jq 1.5 ,
9489 bytesExplicación
Ejecución de muestra
Pruébalo en línea!
fuente
Java 8,
140134116 bytes-24 bytes gracias a @Nevay .
Explicación:
Pruébalo aquí.
fuente
c-->f*(b-n-~b)
(-6 bytes).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* reducido 1 byte con ES8 gracias a Shaggy
Prueba aquí
fuente
i
un parámetro predeterminado. El recuento de bytes también parece estar apagado.Pyth , 20 bytes
Pruébalo en línea!
fuente
PowerShell , 81 bytes
Pruébalo en línea!
Ugh, esto es feo. Se requiere tanto código repetido, más 7 bytes para dar cuenta de
0
un caso especial. Sugerencias de golf bienvenidas.fuente
Pyth, 17 bytes
Pruébelo en línea: demostración
Explicación:
fuente
Python 3:
90 bytes82 bytesGracias a @Jonathan Frech por señalar que la impresión no era necesaria y que el primer zig era incorrecto
fuente
] for
->]for
.print(...)
, una función que devuelve una cadena sería válida. Además, creo que su zig inicial está orientado de manera incorrecta (\ en lugar de /).(abs(...)-1)
->~-abs(...)
.05AB1E ,
1716 bytesPruébalo en línea!
Explicación
Mejor intento actual con lienzo:
fuente
C ++,
9291 bytes-1 bytes gracias a Kevin Cruijssen
Gracias al poder de la magia.
printf
fuente
int i=0,j
bucle forfor(int i=0,j;i<n;++i)
para guardar un byte.Java (OpenJDK 8) ,
13110698969491 bytesPruébalo en línea!
fuente
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 bytes).Dyalog APL ,
39363534 bytesPruébalo en línea!
1 byte guardado gracias a Zacharý
fuente
⎕IO
ser0
, y luego eliminar¯1+
.(⌽,⊢)⍳⍵
lugar de(⌽⍳⍵),⍳⍵
Perl 5 , 70 + 1 (
-n
) = 71 bytesPruébalo en línea!
fuente
Kotlin , 102 bytes
Pruébalo en línea!
fuente
Excel VBA,
8483 BytesFunción de ventana inmediata anónima de VBE que toma la entrada del rango
[A1]
y las salidas a la ventana inmediata de VBEfuente
Jalea , 15 bytes
Pruébalo en línea!
Programa completo
fuente
Haskell ,
8685 bytesPruébalo en línea!
Guardado un byte gracias a Laikoni
Repite un zig ++ un zag y toma las primeras
n*n
líneas.fuente
cycle$ ...
en lugar decycle( ... )
guardar un byte.J ,
39 35 33 3225 bytesPruébalo en línea!
fuente
Dyalog APL,
4140 bytes⎕IO
debe ser0
.Pruébalo en línea!
fuente
D , 105 bytes
Pruébalo en línea!
Levantado de la respuesta C ++ de HatsuPointerKun.
fuente