Su tarea es escribir un programa o una función que imprima un triángulo ASCII. Se ven así:
|\
| \
| \
----
Su programa tomará una sola entrada numérica n
, con las restricciones 0 <= n <= 1000
. El triángulo anterior tenía un valor de n=3
.
El triángulo ASCII tendrá n
barras invertidas ( \
) y barras verticales ( |
), n+1
líneas y guiones ( -
), y cada línea tendrá una cantidad de espacios igual al número de línea (basado en 0, es decir, la primera línea es la línea 0) además de la última línea. .
Ejemplos:
Entrada:
4
Salida:
|\
| \
| \
| \
-----
Entrada:
0
Salida:
En este caso de prueba, la salida debe estar vacía. Sin espacios en blanco.
Entrada:
1
Salida:
|\
--
La entrada y salida deben ser exactamente como las especifiqué.
Este es el código de golf , ¡así que busca el código más corto posible!
code-golf
ascii-art
code-golf
rubiks-cube
code-golf
path-finding
maze
regular-expression
code-golf
math
rational-numbers
code-golf
kolmogorov-complexity
graphical-output
code-golf
tips
code-golf
string
permutations
code-golf
sorting
base-conversion
binary
code-golf
tips
basic
code-golf
number
number-theory
fibonacci
code-golf
date
code-golf
restricted-source
quine
file-system
code-golf
code-golf
math
code-golf
ascii-art
code-golf
math
primes
code-golf
code-golf
math
matrix
code-golf
string
math
logic
factorial
code-golf
palindrome
code-golf
quine
stateful
code-golf
interactive
code-golf
board-game
code-golf
math
arithmetic
code-golf
string
code-golf
math
matrix
code-golf
math
abstract-algebra
polynomials
code-golf
date
code-golf
string
array-manipulation
sorting
code-golf
game
code-golf
string
code-golf
ascii-art
decision-problem
code-golf
number
sequence
code-golf
code-golf
code-golf
sequence
fibonacci
code-golf
math
geometry
random
code-golf
code-golf
math
decision-problem
fractal
rational-numbers
code-golf
number
number-theory
code-golf
combinatorics
permutations
card-games
code-golf
math
sequence
array-manipulation
fibonacci
code-golf
sequence
decision-problem
graph-theory
code-golf
ascii-art
parsing
lisp
code-golf
string
math
natural-language
logic
code-golf
math
logic
code-golf
string
alphabet
code-golf
string
code-golf
string
Okx
fuente
fuente
0
puede tener una salida inesperada, ya que es un caso límite (especialmente porque solicitó que el número de guiones debe ser uno más que el número de entrada)Respuestas:
Jalea , 14 bytes
Pruébalo en línea!
Cómo funciona.
fuente
C, 58 bytes
-
Gracias a @Steadybox, los comentarios de esta respuesta me ayudaron a reducir algunos bytes en mi solución anterior.
fuente
2*n
dos veces allí y me molesta, ¿alguien puede pensar en una forma inteligente de acortarlo de alguna manera?Javascript (ES6),
9785817574 bytesResulta que no estaba usando suficiente recursión
fuente
05AB1E ,
161516 bytesSalvó un byte gracias a Adnan
Pruébalo en línea!
Explicación
fuente
ð×.svy¦…|ÿ\}¹>'-×»
Supongo que mi idea.s
no era tan buena como pensaba. Buen uso deÿ
, no he visto eso antes..s
además de comenzar,<Ýð×
pero tuve problemas con el caso especial de esos métodos.FðN×…|ÿ\}Dg'-×»
para 15 bytesDg
! Gracias :).s
También resultó en matrices anidadas y aplanamiento que requirieron más bytes.V ,
181716 bytes1 byte guardado gracias a @ nmjcman101 por usar otra forma de no generar nada si la entrada es
0
Pruébalo en línea!
Hexdump:
Explicación (obsoleta)
Primero tenemos un ciclo para verificar si el argumento es
0
. Si es así, el siguiente código se ejecuta (|\
está escrito). De lo contrario, no se escribe nada y el búfer está vacío.Ahora que tenemos la parte superior del triángulo, necesitamos crear su cuerpo.
Ahora tenemos una línea extra en la parte inferior del búfer. Esto tiene que ser reemplazado con
-
s.Esta respuesta sería más corta si pudiéramos ingresar lo que queramos
0
V ,
1413 bytesPruébalo en línea!
fuente
«
por supuesto. ¡Inteligente! :)C #, 93 bytes
Función anónima que devuelve el triángulo ASCII como una cadena.
Programa completo con función no comentada y comentada y casos de prueba:
fuente
Python 2 , 69 bytes
Pruébalo en línea!
fuente
"".join
y reemplazándolo con el*
operador y elsep
argumento en la función de suspensión, así quelambda x:print(*['|'+' '*n+'\\'for n in range(x)]+['-'*-~x*(x>0)],sep="\n")
CJam ,
242221 bytesGuardado 1 byte gracias a Martin Ender
Pruébalo en línea!
Explicación
fuente
SmileBASIC, 51 bytes
fuente
PowerShell ,
5167 bytesPruébalo en línea!
(Aumento de bytes para no tener en cuenta la nueva línea final)
Toma entrada
$n
y verifica que no sea cero. Luego realiza un bucle para construir el triángulo y termina con una línea de-
. ImplícitoWrite-Output
sucede al finalizar el programa.fuente
Retina , 39 bytes
Pruébalo en línea
Convierta la entrada decimal a unario. Reemplace cada uno
1
con|<N-1 spaces>\¶
, imprimir y deshacer reemplazar. Reemplace cada uno1
con un guión, y el último guión con 2 guiones. Tadaa!fuente
Lisp común,
8986 bytesCrea una función anónima que toma la entrada n e imprime el triángulo en
*standard-output*
(stdout, por defecto).Golfed
Sin golf
Estoy seguro de que podría hacer esto más corto de alguna manera.
fuente
C
1019375 bytesVersión sin golf
@ Steadybox Gracias por señalar, tiene mucho sentido.
fuente
printf("%c",'_');
tan detallado?i;f(n){for(i=0;i++<n;)printf("%c%*c\n",124,i,92);for(;n--+1;)printf("-");}
i;f(n){for(i=0;i++<n;)printf("|%*c\n",i,92);for(;n--+1;)printf("-");}
n--+1
se puede acortar a~n--
Carbón de leña , 15 bytes
Pruébalo en línea!
Descompostura
fuente
»
puede omitirse.Japt , 20 bytes
Guardado 2 bytes gracias a @ETHproductions
Pruébalo en línea!
Explicación
fuente
o@'|+SpX +'\Ãp'-pUÄ)·
y debido a un error (en realidad es un efecto secundario no intencional de funciones automáticas), a continuación, puede quitar el'
en'-
.p
. Eso es para que pueda hacer, por ejemplo,m*2
duplicar cada elemento omp2
cuadrar cada unoJ, 20 bytes
-13 bytes gracias a bob
Pruébalo en línea!
original: 33 bytes
sin golf
Pruébalo en línea!
fuente
*,&'-' '|',.'\'{."0~_1-i.
*,&'-' '|',.' \'{~=@i.
Pyke,
1817 bytesPruébalo aquí!
fuente
Python2, 73 bytes
Un programa completo También probé la interpolación de cadenas para la última línea, pero resultó ser un par de bytes más: /
Otra solución a 73 bytes:
Casos de prueba
fuente
MATL , 19 bytes
Pruébalo en línea!
fuente
QBIC , 41 bytes
Explicación
fuente
R, 101 bytes
¡Este código cumple con el
n=0
caso de prueba si solo lo consideraSTDOUT
!De hecho, la
stopifnot(n>0)
parte detiene la ejecución del script, no se muestra nada aSTDOUT
pero escribeError: n > 0 is not TRUE
aSDTERR
.Sin golf:
fuente
Python 2 , 62 bytes
Pruébalo en línea!
Imprime línea por línea, cada vez que agrega otro espacio antes de la barra diagonal inversa. Si se permitiera una función que no se imprime, probablemente sería más corta.
fuente
JavaScript (ES6), 71 bytes
Salidas a la consola. Ahorre 6 bytes si la impresión en el shell SpiderMonkey JavaScript es aceptable. Ahorre 13 bytes si devolver la salida es aceptable.
fuente
$`
patrón, pero no sé si aún lo hubiera pensado. Agradable.Python 2 , 67 bytes
Otra función en Python 2, usando
rjust
.Pruébalo en línea!
fuente
Python 3 , 60 bytes
Pruébalo en línea!
Dos soluciones más con el mismo número de bytes.
fuente
Perl, 63 bytes
Sin golf:
$"
es el separador de lista, que por defecto es "".$/
es el separador de registro de salida, que por defecto es "\ n".$_
es la variable de bucle implícito.fuente
$n=<>
?Haskell ,
8265 bytesPruébalo en línea! Uso:
O más amablemente:
fuente
Pyth,
2318 bytesConjunto de pruebas disponible en línea.
Gracias a Ven por jugar golf 5 bytes.
Explicación
fuente
|
por un byte adicional.Javascript 101 (Programa completo), 94 (Salida de función), 79 (Retorno) bytes
Programa completo
No se ejecutará en Chrome (ya que aparentemente el proceso no existe)
No se ejecutará en TIO (ya que aparentemente no se permite la solicitud)
Función con impresión EXACTA
Pruébalo en línea
Función con cadena de retorno
Pruébalo en línea
La repetición de caracteres en Javascript es tonta y también lo es la supresión de nuevas líneas en la salida
fuente
Python 2 , 82 bytes
Pruébalo en línea!
Más tiempo que el otro Python responde pero una función recursiva solo para ser diferente.
Se siente un desperdicio usar dos
print
declaraciones, pero no puedo encontrar una forma más corta de evitarlo. También losexit()
desperdicios 7 para detener su impresión disminuyendo el número de-
debajo del triángulo.fuente
-~c*(c>0)
en la última línea para guardar 3 bytes :)c and-~c
.