¡Inspirado en Mostrar una cadena de pequeñas montañas con un número impar en la parte superior! por @sygmei .
¿Por qué tener una cadena de montañas cuando puedes tener una masiva?
Haga un programa que tome un número de entrada e imprima una montaña con cada número impar hasta el número de entrada.
(Donde "sudoeste" significa directly below and to the left
, y "sudeste" significa directly below and to the right
)
Cada número tendrá un /
sudoeste y un \
sudeste. Comienza 1
en la parte superior, y el siguiente número irá al suroeste de a /
o al sureste de a \
. El siguiente número irá en la línea más cercana a la parte superior y a la izquierda más posible.
Para un número de varios dígitos, solo el primer dígito debe estar en el lugar correcto con los otros dígitos directamente después, y solo el primer dígito debe tener \
y /
salir de él.
La montaña hasta 1 o 2 es solo:
1
/ \
Una montaña de hasta 3 o 4 es solo:
1
/ \
3
/ \
Para 25 o 26:
1
/ \
3 5
/ \ / \
7 9 11
/ \ / \ / \
13 15 17 19
/ \ / \ / \ / \
21 23 25
/ \ / \ / \
Las últimas dos líneas donde la entrada es 121:
111 113 115 117 119 121
/ \ / \ / \ / \ / \ / \
Y las dos últimas líneas donde la entrada es 1019:
993 995 997 999 1001100310051007100910111013101510171019
/ \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \
Puede suponer que la entrada será mayor que 0 y menor que 10001 (exclusivo).
Los espacios finales están bien, y los espacios iniciales adicionales están bien siempre que haya lo mismo en todas las líneas.
Este es el código de golf , por lo que gana el programa más corto en bytes.
Puede encontrar una respuesta no escrita a esto en línea aquí (en Python en repl.it) si necesita más casos de prueba.
Respuestas:
05AB1E ,
54524746 bytesPruébalo en línea!
Explicación
Podría haber ahorrado 5 bytes
ÅɹL£D€g__ÏRv"/ \ "yg×N·©úˆy4jJðÛ®>úˆ}¯R»
si hubiera empujado esa corrección de errores para j que escribí hace varias semanas : /fuente
Lote, 335 bytes
fuente
cmd /Q /C file.bat
cuenta con 3 bytes adicionales, pero aún así es mejor que@echo off
. Debe publicar eso en la pregunta de consejos de Batch.Python 2,
160149143 bytesGracias TFeld por guardar 11 bytes y Artyer por guardar 6 bytes
fuente
i=len(y)
y enfor l in y:print' '*i+l;i-=1
lugar defor i,l in enumerate(y):print(len(y)-i-1)*' '+l
por -10 bytes\\
de\
puesto que está delante de un espaciowhile y:print' '*-~len(y)+y.pop(0)
. Ahorra 3 bytes.%-4d
dejarlo justificar por 4.Perl, 134
133 bytes + 1 para la
-p
opciónVersión formateada (la versión original de golf utiliza "nuevas líneas" reales en lugar de \ n)
fuente
Bash, 425 bytes
Formateado:
fuente