La primera línea está hecha con ceil(n/2)
elementos donde cada elemento es:<space><odd-number><space>
La segunda línea está hecha con ceil(n/2)
elementos, pero cada elemento es / \
solo.
Puedes asumir n >= 0
y n <= 10
.
Ejemplos
Entrada: 3
1 3
/ \/ \
Entrada: 10
1 3 5 7 9
/ \/ \/ \/ \/ \
Ejemplo en Python 3, 103 bytes:
lambda a:print("".join([" "+str(i)+" "for i in range(1,a+1,2)]+["\n"]+["/ \\"for i in range(1,a+1,2)]))
El código más corto en bytes gana :)
<space><odd-number><space>
, pero los casos de prueba no tienen un espacio después del último número impar. ¿Es opcional? Además, ¿es la salida paran=0
dos líneas vacías?Respuestas:
05AB1E ,
19151412 bytes05AB1E utiliza la codificación CP-1252 .
Guardado 4 bytes gracias a Adnan . Ahorro de
2 bytes gracias a carusocomputing
Pruébalo en línea!
Explicación
fuente
Ï
existido? Eso parece súper útil.LDÉÏ
es lo mismoÅÉ
y„ ýðì
puede ser reemplazado porðì)»
:).)
, ¿no?ÅÉðìDg…/ \×»
utiliza enDg
lugar de¹;î
otro byte guardar también.Pyke, 16 bytes
Pruébalo aquí!
17 bytes y más impresionante
Pruébalo aquí!
Esto usa en mi humilde opinión un algoritmo IMPRESIONANTE para asegurarse de que la primera línea esté correctamente alineada.
Esto reemplaza todos los caracteres en la lista de cadenas con espacios.
~B
contiene todos los caracteres en el lenguaje Brain **** y esta es la primera vez que uso esta variable.El programa
`~Bd.:
hace esto:fuente
Python 2, 63 bytes
Pequeño truco para la primera línea: no imprime los números pares, sino que los toma como una cadena vacía, lo que lleva al inicio del espacio vacío (0 estaría allí), y espacios dobles entre los números sin ninguna modificación en el rango, La desventaja es un espacio líder en el número par
n
fuente
Python
23,67656360 BytesNada demasiado loco aquí,
creo que la primera sección probablemente se puede hacer más corta, pero no estoy muy seguro de cómo. Utilizo el hecho de que en este caso-~n/2
funcionaráceil
.A continuación se presentan soluciones alternativas de 61 y 65 bytes en Python 2:
Gracias a Rod por guardar 2 bytes y Artyer por guardar otro byte cambiando la versión :)
fuente
%(tuple(...))
con%[*...]
, pero tendría que hacerlo-~n//2
range
a una lista de 3 a causarange
es como Python 2 dexrange
.tuple()
(*<iterable>,)
para lanzar a tupla en Python 3. Esto ahorra 1 byte después de que te conviertasn/2
enn//2
Python 3.JavaScript (ES6), 55 bytes
Tenga en cuenta el espacio al final de la segunda línea.
fuente
.replace
podría ser mejor, pero no me molesté en comprobarlo ...Python 2, 53 bytes
Aprovecha la restricción
n <= 10
para generar la línea superior cortando una pieza de una cadena codificada.Las salidas para 1 a 10 son
La salida para 0 es dos líneas vacías.
fuente
Vim,
735956 bytesEste es un IMO de conteo de bytes realmente alto para lo que parece un problema simple. Siento que me falta algo obvio.
Pruébalo en línea!
No imprimibles
fuente
:s;.;/ \\;g
. 2) en su segundo comando sustituto, puede dejar la búsqueda vacía y usará su última búsqueda (que resulta ser la misma). Además,&
es equivalente a\0
y un byte más corto. Así que obtienes:s// & /g
Mathematica, 65 bytes
Función anónima. Toma un número como entrada y devuelve una cadena como salida. Los caracteres Unicode, respectivamente, son U + 2308 TECHO IZQUIERDO para
\[LeftCeiling]
y U + 2309 TECHO DERECHO para\[RightCeiling]
.fuente
WinDbg, 100 bytes
La entrada se realiza estableciendo un valor en el pseudo-registro
$t0
.Parece que es más corto aquí solo para imprimir la cadena a medida que se está construyendo en lugar de intentar construirla primero y mostrar todo. Tendría una solución más corta si WinDbg me dejara escribir a la dirección
0
.Cómo funciona:
Salida para cada valor de
n
:fuente
> <> (PESCADO),
69606855 bytes¡Pégalo en este intérprete en línea!
El número 5 en la primera línea es su valor de entrada (codificado como 5, reemplazado por 0-ao i para la entrada del usuario).
Edición 1: movió la nueva ubicación de línea en el espacio de la primera línea (estaba vacío) para ahorrar 9 bytes en general en el espacio de una nueva línea.
Edición 2: como lo señaló el usuario7150406, la salida fue incorrecta (sin espacios de impresión), esto se ha solucionado con una pérdida de 8 bytes.
Edición 3: cambió completamente la lógica, no tiene sentido verificar si el número es impar, en lugar de colocar todos los números en la pila y eliminar cada segundo. Byte guardado 13!
fuente
Java,
118112 bytesEditar: Guardado 6 Bytes gracias a @peech
Golfizado:
Sin golf:
Pruebas:
fuente
i
en su primer bucle for, podría verse asífor(; i < n; i++)
. Puedes jugarlo aún más con este cambio: loso += i + " ";
cambios eno += i++ + " ";
y para loop se conviertenfor(; i < n; )
. Eso es si quieres mantener la declaración if. Puede cambiar su incremento de i ai += 2
y eliminar la declaración if completa, pero en ese caso mi segunda proposición no se aplica :) (ps: noi
inicialización delfor
bucle, pero las otras cosas lo atraparon en un bucle. Puede que necesite jugar un poco más :)o += i++ + " ";
:). Por cierto, usted tiene un pequeño error en su código :) ya que Java utilizafloor()
en la división entera (4/3 = 1), debe hacerlo de esta manera:int i = 1; n += 1; for (; i < n; i += 2) { ... jada jada ... }
. si incrementa ii += 2
, no necesita eso si el estado de cuenta verifica la paridad. También guarda otros 3 bytes :) pruébelo aquí: ideone.com/ekaUUHfloor
peculiaridad de la división cuando jugué con Java hace unos días :)C # 6, 95 bytes
Lambda completa:
fuente
CJam,
2623 bytes¡Pruébalo!
-3 gracias a 8478 (Martin Ender)
fuente
Sri,:)2%_S2**N@,"/ \\"*
+
. Y lo juro, ¡realmente lo uséed
! ... más corto que Pyth.Game Maker Language (GM 8.0), 97 bytes
Dado que la entrada es como máximo 10,
chr(48+i)
funcionará en lugar destring(i)
, aunque el número de bytes es el mismo.Legible:
fuente
Pyth,
2422 bytesGracias a 42545 (ETHproductions) por -1 byte
Intérprete en línea
11 casos de prueba
fuente
*lK"/ \\
\
lugar de\\
:)> <> (Pescado)
526362 bytesPruébalo en línea!
Para usar simplemente lugar
n
en la pila y ¡listo!Gran parte de esto está tomado de la respuesta de @ Teal-Pelican :).
Editar: ¡La salida en realidad no está alineada correctamente en>> envío! Fijación...
Edit2: tuve que sacrificar algunos bytes, pero la salida es realmente correcta ahora.
Edit3: No más diversión con
\
/
espejos y guardo 1 byte.Salida:
fuente
C,
1007977 bytesfuente
R,
70696858 bytesfuente
Golpetazo,
64,59,57,51,49,48, 45 bytesEDITAR:
-s ""
por-s\
Golfed
Trozo (45 bytes):
Función (versión original) (57 bytes):
Prueba
fuente
sed
es brillante. Al no usar una función ni printf, ahorra 10 bytes:seq -f" %g " -s "" 1 2 $1|sed 'p;s| . |/ \\|g'
cat
para leer la entrada de STDIN, como la OMI en realidad no es justo usar una variable predefinida para pasar los datos en.$1
es solo el primer parámetro transmitido al programa. No creo que sea trampa ver meta.codegolf.stackexchange.com/questions/2447/…Befunge 93 , 64 bytes
Pruébalo en línea!
fuente
Ruby
8260 BytesLa solución rápida y sucia de Ruby definitivamente podría optimizarse mejor si fuera mejor con Ruby
Uso: prog.rb 10
Salida:
editar: numerosas ediciones y optimizaciones de @Manatwork!
fuente
print
→$><<
y use la interpolación de cadenas" #{x} "
. Pero lo mejor sería reducir el número de.each
mediante la salida de la primera línea directamente de la devolución de llamada y la construcción de la segunda línea en una variable:s="";(1..$*[0].to_i).step(2){|x|$><<" #{x} ";s+="/ \\"};puts"",s
. O inclusoputs"",(1..$*[0].to_i).step(2).map{|x|$><<" #{x} ";"/ \\"}*""
.Numeric#step
acepta 2 parámetros, por lo que puede evitar la sintaxis de rango largo que requiere paréntesis alrededor de:(1..$*[0].to_i).step(2)
→1.step($*[0].to_i,2)
.JavaScript (ES6),
6664 bytesRecursivamente construye la primera línea, luego agrega la segunda. La primera línea se construye con la observación de que es simplemente el rango [0 ... n] con cada elemento n transformado en un espacio si es par, o n concatenado con un espacio si es impar.
fuente
Python 2, 60 bytes
¡Guardado 6 bytes gracias a @Kade!
fuente
list()
yeso, eliminarlo lo lleva a 60 :)lambda s:" "+" ".join(range(s+1)[1::2])+"\n"+-~s/2*"/ \\"e
porque entonces daría una lista de entradas y muereLote, 107 bytes
fuente
Scala,
9995 BytesSin golf
fuente
Ruby, 48 bytes
fuente
Octava, 45 bytes
f=@(n)reshape(sprintf(' /%d \',1:2:n),2,[]);
Prueba:
f (8)
fuente
QBIC , 35 bytes
Explicación:
fuente
Kitanai , 140 bytes
fuente
Perl, 46 + 2 (
-pl
bandera) = 48 bytesUtilizando:
O 52 bytes:
Utilizando:
fuente