Su tarea: dado un número n
, genere un signo '+' que esté n
alejado de los caracteres de su centro. Si esto es confuso, revise los casos de prueba.
Métodos estándar de entrada: la salida debe ser una cadena o impresa. Se aplican lagunas estándar.
Input: 1
Output: + ] 1 away from center `+`.
Input: 2
Output: + ] 2 away from center `+`.
+++ ] 1 away from center `+`.
+
Input: 3
Output: + ] 3 away from center `+`.
+
+++++
+
+
Este es el código de golf , ¡el código más corto gana!
Respuestas:
Carbón de leña , 5 bytes
Pruébalo en línea!
fuente
P+
= cruz).Python 2 , 53 bytes
Pruébalo en línea!
fuente
JavaScript (ES6),
6765636059 bytesx-1
, la primera con--x
y la segunda conx
."\n"
con`[newline]`
.repeat
de una manera que redujera el tamaño. (Con mención honorífica a Marie por sus esfuerzos, también)Intentalo
fuente
"\n"
con dosa='repeat',v=.....
y` `[a]
repeat()
pero mis primeros intentos salieron 2 o 3 bytes más grandes, ¡así que lo abandoné! Le echaré otro vistazo cuando vuelva a estar frente a una computadora.x=>(v=(` `[r='repeat'](--x)+`+<newline>`)[r](x))+`+`[r](x*2+1)+`<newline>`+v
MATL , 11 bytes
Pruébalo en línea!
Explicación con ejemplo
Considere
n = 3
.fuente
Carbón ,
1613 bytesPruébalo en línea!
Utiliza un enfoque diferente de la otra respuesta de carbón.
Explicación
Ahora la esquina superior izquierda está completa, se verá más o menos así:
El último paso es la clave de este programa, utiliza la parte superior izquierda del signo más para generar el resto del signo más reflejándolo en la dirección sureste (hacia la derecha y hacia abajo).
fuente
Lenguaje de programación Shakespeare ,
749743 bytesPruébalo en línea!
Editar: hizo que la respuesta fuera compatible con la implementación oficial de SPL.
Golfó 6 bytes porque los números de escena no tienen que ser consecutivos.
Explicación :
SPL es un esolang diseñado para parecerse a las obras de Shakespeare. Los sustantivos positivos tienen el valor de 1 (aquí se usa cat ) y los sustantivos negativos tienen el valor de -1 (no se usaron ninguno pero pig es uno de ellos). Los adjetivos modifican una constante multiplicándola por 2.
Todo hasta el primer punto es el título y no importa.
Los caracteres son variables enteras, cada uno de ellos también tiene una pila, pero no necesitaba usar esa función.
Los actos y las escenas se usan como etiquetas de goto
Solo es útil si exactamente dos personajes están en el escenario al mismo tiempo.
Lee un número y hace que Ford lo recuerde.
Como puede ver, Engrish es válido en SPL. Esto hace que el valor de Puck sea "la diferencia entre un gato y yo". Pero, ¿qué significa?
cat
es un sustantivo positivo, entonces lo esPuck = 1 - Ford
.Exeunt es solo un plural de "salida", y sin argumentos significa que todos en el escenario salen.
También es,
Page = 1 - Ford
pero lo habla un actor diferente, porI
lo que estaría mal. Como es un bucle, no puedo simplemente copiar el valor dePuck
.Bastante sencillo por ahora.
Ajax = Puck * Page
."as [adj] as" es el
==
operador.Si Ajax == 0 ... "gato" es 1, "gato grande" es 2, "gato grande" es 4 y así sucesivamente. Después de sustituir las constantes simples obtenemos "la suma de la suma de la suma de 32 y 8 y 2 y 1" -> "la suma de la suma de 40 y 2 y 1" -> "la suma de 42 y 1" -> "43", que es el ASCII para +.
de lo contrario, es solo "gato gordo gordo gordo gordo", por lo que Ajax obtiene el valor de 32, el ASCII por un espacio.
Este es el comando para generar un carácter.
Esta es una construcción de bucle. "Sumas tú y gato" incrementa la página, y
if(Page != Ford) goto Scene III
. El resto del programa usa los mismos componentes, así que aquí hay una versión de pseudocódigo más legible:fuente
If not,let us return to Scene III.
" -1; rompe la cuarta pared: PJalea , 11 bytes
Pruébalo en línea!
fuente
Mathematica, 39 bytes
CrossMatrix
es una función integrada que genera una matriz de la forma requerida con1
s en lugar de+
sy0
s en lugar de espacios. Si multiplicamos esa matriz por"+"
, eso reemplaza la1
s con+
s mientras deja la0
s sin cambios (obviamente ...0*x = 0
y1*x = x
, ¿verdad?). Luego reemplazamos los ceros manualmente con espacios usando/. 0->" "
. Finalmente, imprimimos cada línea de la matriz conPrint@@@(...)
.fuente
Print
podría usarse así.C, 69 bytes
No es muy interesante ... Recorre el cuadrado, imprime el personaje apropiado.
fuente
Rubí,
4140 bytesPruébalo en línea!
fuente
GNU sed ,
10499 bytes-5 gracias a seshoumara
Incluye +1 por
-r
Toma entrada en unario.
Pruébalo en línea!
fuente
s/( *2)2(2*)/\1\n\1\2/
ys/(.*)(\n1*)/&\n\1/
como se muestra aquí , para una puntuación total de 99.Lua
113, 90 bytesfuente
Python 2 , 52 bytes
Pruébalo en línea!
Una alternativa de 53 bytes ( TIO ):
fuente
R, 54 bytes
Afeitando 7 bytes gracias a @Jarko Dubbeldam:
respuesta anterior:
fuente
function(n){a=matrix("",n*2-1,n*2-1);a[n,]="x";a[,n]="x";a}
serían 59 bytes!matrix("",y<-n*2-1,y)
a[n,]=a[,n]="x"
funciona también, ahorrando algunos bytes más.scan()
y convirtiéndolo en un programa en lugar de una función:n=scan();a=matrix("",y<-n*2-1,y);a[n,]=a[,n]="+";a
PowerShell , 48 bytes
Pruébalo en línea!
Toma entrada
$n
. Comienza construyendo una cadena de--$n
espacios, concatenados con+
. Eso se convierte en una matriz utilizando el operador de coma, (recientemente decrementado)$n
veces. Esa matriz se almacena$x
y encapsula en parens para colocar una copia en la tubería.Luego hacemos la sección del medio, que es una
+
cadena multiplicada el número apropiado de veces. Eso queda en la tubería. Finalmente, volvemos$x
a la tubería.Todo eso queda en la tubería al finalizar el programa, y lo implícito
Write-Output
inserta una nueva línea entre los elementos.fuente
Perl 5 , 45 bytes
44 bytes de código +
-p
bandera.Pruébalo en línea!
Algunos enfoques similares (pero aún diferentes):
48 bytes (47+
-p
):50 bytes (49+
-n
):fuente
Python 2 ,
60,56 bytesPruébalo en línea!
fuente
CJam , 23 bytes
Pruébalo en línea!
Explicación
Esto se siente un poco subóptimo, pero la idea es superponer las siguientes dos cuadrículas:
Lo que da el resultado deseado.
fuente
CJam, 17
Pruébalo en línea
Explicación:
fuente
Octava,
3631 bytesInspirado por la respuesta MATL de @LuisMendo.
Pruébalo en línea!
Respuesta anterior:
Pruébalo en línea!
fuente
05AB1E ,
151412 bytesPruébalo en línea!
-2 gracias a Emigna.
fuente
F'+}¹·<×)û.c
por 12.Python 2, 65 bytes
Pruébalo en línea!
fuente
JS (ES6),
887473 bytesProbablemente se pueda jugar más al golf.
fuente
"\n"
con dosJavaScript (ES6), 60 bytes
Produce dos nuevas líneas finales. Formulación alternativa, también 60 bytes:
fuente
PowerShell, 48
No parece ser más corto que eso (y casi el mismo enfoque que la otra solución):
o
fuente
V ,
191815 bytesGolfé 3 bytes gracias a @ nmjcman101 usando
.
yÒ+
Pruébalo en línea!
fuente
REXX, 81 bytes
fuente
PHP, 68 bytes
83 bytes
fuente
$m=$argn
y el incremento previo en$i
lugar de aumentarlo posteriormente. También puede guardar un byte moviendo la$m
asignación al final y soltando los corchetes.for(;$i<$c=-1+2*$m=$argn;)echo"\n".str_pad("+",$c," +"[$m==++$i],2);
while(++$y<2*$n=$argn)echo"\n",str_pad("+",$n*2-1," +"[$y==$n],2);
66 bytes (y guarde uno más con un salto de línea físico)MUMPS, 48
5053bytesfuente
Brain-Flak , 216 + 1 = 217 bytes
+1 bytes de la
-A
banderaPruébalo en línea!
Explicación por venir
fuente