Crear una función que, dada una cantidad de líneas n
, hace a bigA
.
- La barra horizontal de
bigA
debe estar en la fila central, o la inferior de las dos sin
es par - Asumir una fuente monoespacial para salida
La salida debe ser una cadena (o similar, por ejemplo, una matriz de caracteres) con saltos de línea claros para dividir las líneas, y con el espacio en blanco correcto para el relleno izquierdo (puede suponer que \ t son 4 espacios). Puede haber cualquier espacio en blanco a la derecha.
Ejemplos
n = 1
A
n = 2
A
AAA
n = 3
A
AAA
A A
n = 4
A
A A
AAAAA
A A
n = 5
A
A A
AAAAA
A A
A A
Esto está inspirado en Crear una "H" a partir de "H" más pequeñas
Respuestas:
05AB1E , 13 bytes
Código:
Utiliza la codificación 05AB1E . Pruébalo en línea!
Explicación:
Lona
Probablemente debería documentar el lienzo un poco más (y muchas otras funciones), pero esto básicamente lo resume. El lienzo tiene diferentes 'modos' basados en los tipos de parámetros dados. El comando de lienzo tiene tres parámetros: <longitud> <cadena> <dirección> .
Dado que los parámetros de longitud y dirección son listas, 'comprime' estas listas para crear un conjunto de instrucciones que se ejecutarán. El parámetro de cadena es solo la letra A , por lo que este es el carácter de relleno utilizado por todas las instrucciones. El lienzo interpreta esto como el siguiente conjunto de instrucciones (para la entrada 7):
Las instrucciones se traducen de la siguiente manera:
Si no se ha emitido nada, 05AB1E genera automáticamente el resultado del lienzo.
fuente
Carbón ,
1715 bytesPruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Entrada
n
.Imprime la barra horizontal de la grande
A
. (Para números pares, eln+1
th se superpone del lado derecho de todos modos).Mover a la cima de lo grande
A
.Imprime ambos lados de la grande
A
.fuente
Python 2 , 80 bytes
Pruébalo en línea!
Divida la salida deseada en el espacio en blanco izquierdo, el espacio en blanco izquierdo
A
más medio oA
s, y el derechoA
. Calcule la parte media usando el corte en una cadena fija. Esto permite utilizar la misma forma para generar la primera línea.fuente
Stax , 15 bytes
Ejecutar y depurarlo
Desempaquetado, sin golf y comentado, el programa se ve así.
Ejecute este
fuente
JavaScript (ES6), 77 bytes
¡Este código fuente tiene forma de rectángulo ! Oh espera ... desafío equivocado: - /
Pruébalo en línea!
fuente
Python 3.6 , 79 bytes o 73 bytes
Usando cadenas f para alinear partes horizontales de la letra:
Con
\b
utilizado para eliminar unoA
(posiblemente hacer trampa):fuente
Java (JDK 10) , 124 bytes
Pruébalo en línea!
fuente
J , 65 bytes
Pruébalo en línea!
Se puede reducir en aprox. 12 bytes simplemente haciendo el verbo tácito, pero tengo problemas para hacerlo.
Explicación:
3 : '...'
denota un verbo explícito de una líneay
es el argumento=/~@i.
crea una matriz de identidad con el tamaño del argumento([:(}:@|."1,.])
antepone la matriz de identidad con su copia espejo con los últimos elementos de cada fila descartados.1(...)}(...)
cambia a 1 las posiciones en su argumento derecho, seleccionado por el izquierdo([:(<@;]+i.@+:)<.@-:)
- prepara la selección haciendo lo siguiente:' A'{~
representa un espacio en los lugares de 0 y 'A' donde hay 1fuente
Lienzo ,
1713 bytesPruébalo aquí!
-4 bytes gracias a dzaima !
fuente
Ruby , 66 bytes
Pruébalo en línea!
Devuelve como un conjunto de líneas
fuente
SOGL V0.12 , 12 bytes
Pruébalo aquí!
Explicación:
fuente
Japt
-R
,2019 bytesIntentalo
Explicación
Alternativa
(¡Con la esperanza de que pueda ayudarme a detectar algunos ahorros!)
fuente
ç h'AUz)¬íp ®i'A êÃû
p
con²
y también tiene 19 bytes.Ruby , 73 bytes
Pruébalo en línea!
fuente
Gelatina ,
23201918 bytesPruébalo en línea!
=þ`
crea una matriz de identidad de tamañon
.L‘HĊƲ
encuentra el índice de fila de la barra horizontal con¦
seleccionar esa fila y aplicarlao\
para crear la barra.U
invierte cada fila para que no tengamos una "A" invertida yŒB
(palindromizar; vectoriza) hace la segunda mitad de la "A".ị⁾A
(con un espacio que se está recortando en el formato) reemplaza0
s con espacios1
ys conA
s.fuente
T-SQL ,
182177 bytesPrimera versión (con 182 bytes):
La versión anterior funciona hasta @ n = 9.
Aquí hay otra versión, que funciona hasta @ n = 23, pero tiene 2 bytes adicionales:
Sin golf:
fuente
Haskell ,
989795 bytes y 109 bytesDos enfoques muy diferentes. Primero (95 bytes):
y segundo (109 bytes):
Pruébalos aquí!;¡Pruebe la versión modificada aquí!¡Prueba la tercera versión aquí!
fuente
l
como operador infijo .m True='A'
un ser acortado am b|b='A'
.Python 2 , 70 bytes o 65 bytes
La lista de cadenas es un resultado aceptable, como @Budd declaró en los comentarios.
Pruébalo en línea!
Solución aparentemente engañosa, usando
\b
. Se ve funky en TIO, en la consola hace el trabajo.Pruébalo en línea!
fuente
Javascript, 124 bytes
Una solución bastante ingenua, le dio una oportunidad para practicar habilidades js.
for(i=-1,p=" ".repeat(n-1)+"A ";++i<n;console.log(i-~~(n/2)?p:p.slice(0,i)+"A".repeat(n)),p=p.slice(1,n)+" "+p.slice(n-1)){}
Desempaquetado
fuente
Perl 5
-n
, 57 bytesPruébalo en línea!
fuente
Python 3 ,
93, 88 bytesPruébalo en línea!
-3 por @ovs usando f-string
fuente