Todos los créditos a Adnan por venir con este desafío.
Mi último desafío, antes de irme de vacaciones .
Tarea
Dado un entero positivo n
, si n
es impar, repita /
eso muchas veces; si n
es par, repite \
eso muchas veces.
(En serio, los casos de prueba serían mucho más claros que esta descripción, así que solo mire los casos de prueba).
Especificaciones
- Cualquier formato de entrada / salida razonable.
- Se aplican lagunas estándar .
Casos de prueba
n output
1 /
2 \\
3 ///
4 \\\\
5 /////
6 \\\\\\
f=n=>...
, se podría llamar directamente:(n=>...)(5)
. (O si está utilizando Node.js REPL, entonces podría usarthis._
, que representa lo último ingresado)Python, 20 bytes
fuente
05AB1E / 2sable ,
151198 bytes-2 bytes gracias a Leaky Nun
-1 byte gracias a Emigna
Pruébalo en línea! en 05AB1E
o en 2sable
fuente
sè×
😮"/\"
puede ser „/ \Perl, 20 bytes
Incluye +1 para
-p
Ejecutar con entrada en STDIN:
squigly.pl
fuente
-p
opción? Lo uso;
en la transliteración exactamente porque-p
tiene un implícito;
al final del código para que pueda guardar 1 byte más. Esto ha funcionado desde al menos 5.6 (probablemente mientras-p
existiera la opción);
agregado por-p
es bastante impresionante, bien hecho.Retina , 21
Pruébelo en línea (se agregó la primera línea para permitir la ejecución de múltiples casos de prueba).
fuente
C #, 42 bytes
Selecciona el carácter correcto, luego crea una nueva cadena que consta de ese carácter repetidas
n
veces.fuente
PHP, 38 bytes
(variante 38 bytes)
(variante 38 bytes)
(variante 40 bytes)
fuente
C, 40 bytes
Pruébalo en Ideone
fuente
putchar(92-n%2*45)
es de la misma longitudJalea , 5 bytes
Pruébalo en línea! o Verificar todas las cajas de prueba.
fuente
Ø^
es un byte más corto que⁾/\
.J, 10 bytes
Este es un verbo de seis trenes, que consiste en:
Este es un gancho entre
#
y('\/' {~ 2 | ])
; un gancho se(f g) y
expande ay f (g y)
, por lo que esto se expande ay # (... y)
, que, para caracteres únicos, produce una lista dey
caracteres.La segunda parte es un tren de 5, que consiste en:
Esto se evalúa en dos tenedores:
La horquilla interna
2 | ]
, es el módulo dos. La horquilla exterior, por lo tanto, es:Que toma (
{~
) el índice mod2 (mod2
) de la cadena/
.Luego, usando el gancho de arriba:
Esto produce lo que queremos, y hemos terminado.
fuente
Haskell, 25 bytes
-1 byte gracias a Damien con
cycle
.fuente
f n=cycle"\\/"!!n<$[1..n]
Mathematica,
343228 bytesFunción anónima. Toma un entero como entrada y devuelve una lista de caracteres como salida.
fuente
~Table~#
.<>""
y devolver una lista de personajes.~Do~Infinity
y tal en 10.2+ también ...Powershell,
3027 bytesActualizar:
Cambiando a
param
, gracias a timmyd .o un poco más legible
Prueba:
fuente
param($n)
lugar de$args
, como sigue, para 27 bytes:param($n)('\','/')[$n%2]*$n
Mathematica, 29 bytes
Explota cruelmente el hecho de que
[[1]]
devuelve el primer argumento de una función mientras[[0]]
devuelve la función (cabeza) en sí, aplicada a la función extrañamente válida llamada"\\"
que se está "evaluando" en"/"
.fuente
a[b]
es solo una expresión genérica con heada
(index0
) y elementb
(index1
), y las funciones son solo tipos especiales de expresión (en realidad, sería más correcto decir que las funciones no son ' t expresiones en absoluto, pero son simplemente reglas para transformar expresiones que generalmente tienen formaf[x...]
). :)Rubí, 15 bytes
Véalo en eval.in: https://eval.in/632030
fuente
Fourier, 27 bytes
Pruébalo en línea!
fuente
Brachylog , 15 bytes
Pruébalo en línea!
Explicación
fuente
CJam , 9 bytes
Pruébalo en línea!
Explicación
fuente
> <> (Pescado), 30 Bytes
La primera vez que uso este lenguaje, pero creo que al menos ahorré un poco de espacio al usar condicionalmente / como parte de la salida o un espejo para redirigir el flujo. Sin embargo, probablemente todavía sea terriblemente ineficiente, siento que probablemente podría reducirse un poco más como mínimo.
La entrada es la pila inicial, la salida es
stdout
Pruébalo en línea!
fuente
Dyalog APL , 11 bytes
Requiere
⎕IO←0
cuál es el predeterminado en muchos sistemas.⊢
el argumento⍴
remodela (se repite)'\/'⊃⍨
la cadena "/" seleccionada por2|⊢
el resto de la división cuando el argumento se divide por dosTryAPL en línea!
fuente
Java 7,
6865 bytes3 bytes guardados gracias a @ user902383 y @SeanBean .
Al igual que con esta respuesta , el código de golf más corto parece recorrer e imprimir. Ambos recursivos y
void c(int i){System.out.print(new String(new char[i]).replace("\0",i%2<1?"\\":"/"));}
parecen ser más largos.
Ungolfed y código de prueba:
Pruébalo aquí.
Salida:
fuente
x=-1;++x<i
ax=0;x++<i
usted puede reducir en un byte"\\" : "/"
con92:'/'
;)R,
4746 bytesEn R, debes escapar de las barras invertidas. el argumento
sep
también debe especificarse por completo ya que viene después...
. Por lo tanto, molestamente pocas oportunidades para guardar caracteres :(Gracias a bouncyball por jugar golf un byte.
fuente
n=scan();cat(rep(c('\\','/')[n%%2+1],n),sep='')
T-SQL 50 bytes
Por supuesto que no
STDIN
aquí, así que supongamos unaINT
variable codificada como esta:DECLARE @ INT
entonces la solución es:fuente
Pip , 8 bytes
Sencillo. Utiliza indexación modular para seleccionar el carácter y la repetición de cadena para multiplicarlo. Pruébalo en línea!
Esta pregunta presenta una comparación interesante entre Pip, Pyth y Jelly , cada uno de los cuales tiene una puntuación de 5 bytes. Los tres idiomas tienen una salida implícita, con operadores de un solo carácter para la indexación modular y la repetición de cadenas, y no es necesario escapar de las barras diagonales inversas en las cadenas. Sin embargo, hay dos diferencias clave:
Es probable que ninguna de estas características aparezca en el Pip 1 (no me gusta la estética de los delimitadores desequilibrados, y la sintaxis sin puntos o los operandos implícitos parecen ser demasiado ajenos a mi analizador de expresiones infijo), pero yo Estoy de acuerdo con tocar el tercer violín. Aunque la "legibilidad" es extremadamente relativa cuando se juega al golf, diría que esos tres bytes adicionales hacen que el programa Pip sea mucho más fácil de entender de un vistazo, y en mi libro, eso es una compensación que vale la pena.
1 Aunque, las cadenas de un solo carácter en Pip usan un solo
'
delimitador, inspirado en CJam y citando en Lisp.fuente
code golf
:! =golflang design
. Ahora bien puede argumentar que el mismo principio (más corto siempre es mejor) se aplica también al diseño del lenguaje. Solo digo que para mí, la usabilidad e incluso la estética son consideraciones.Pyth , 5 bytes
Banco de pruebas.
Indización modular en la cadena
\/
y luego repetir.fuente
Perl 6 , 16 bytes
Uso:
fuente
Julia, 20 bytes
fuente
SpecBAS - 28 bytes
ODD
devuelve 1 si el número es impar, luego lo usa como índice para imprimir el carácter correcto n veces. Debe agregar 1 ya que las cadenas de SpecBAS comienzan en el carácter 1.fuente
Java 8, 56 bytes
Me gustaría agradecer a @Kevin Cruijssen de antemano por jugar más al golf mi respuesta.
Programa de prueba sin golf
fuente
En realidad, 10 bytes
Sugerencias de golf bienvenidas. Pruébalo en línea!
Cómo funciona
fuente