Reto:
Entrada: un entero positivo
Salida:
Cree una lista en el rango y únala a una cadena (es decir, sería la cadena 12345678910111213
).
Ahora sacamos un triángulo usando los prefijos o sufijos de esta cadena, en una de las siguientes cuatro orientaciones basadas en el entero de entrada:
- Si , imprímalo en forma de triángulo ◣
- Si , imprímalo en forma de triángulo ◤
- Si , imprímalo en forma de triángulo ◥
- Si , imprímalo en forma de triángulo ◢
Ejemplo:
Entrada:
Como , la forma será ◤. Aquí tres posibles salidas válidas:
12345678910111213 11111111111111111 12345678910111213
1234567891011121 2222222222222222 2345678910111213
123456789101112 333333333333333 345678910111213
12345678910111 44444444444444 45678910111213
1234567891011 5555555555555 5678910111213
123456789101 666666666666 678910111213
12345678910 77777777777 78910111213
1234567891 8888888888 8910111213
123456789 999999999 910111213
12345678 11111111 10111213
1234567 0000000 0111213
123456 111111 111213
12345 11111 11213
1234 1111 1213
123 222 213
12 11 13
1 3 3
Reglas de desafío:
- Como puede ver en las tres salidas válidas anteriores, solo es importante la forma correcta y el uso de todos los dígitos en el orden correcto . Aparte de eso, eres libre de usar prefijos o sufijos; se invierte / refleja; impresión diagonal; etc. etc. Se permite cualquiera de las seis salidas posibles para cada forma (consulte el caso de prueba a continuación para ver todas las salidas válidas basadas en la forma). Esto permite que los idiomas con rotación incorporada lo usen, pero los que no lo tienen también pueden usar un enfoque alternativo de usar los prefijos en el tamaño correcto de arriba a abajo, o usar los prefijos para dos de las formas pero los sufijos para las otras dos formas . Elegir las opciones de salida más apropiadas para su idioma es parte del proceso de golf. :)
- Se garantiza que la entrada sea un número entero positivo. Para simplemente sacamos .
1
- Se permite cualquier cantidad de líneas / espacios iniciales / finales, siempre que imprima el triángulo correcto (¡sin delimitadores verticales u horizontales!) En algún lugar de la pantalla.
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Las reglas estándar se aplican a su respuesta con las reglas de E / S predeterminadas , por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código (es decir, TIO ).
- Además, se recomienda agregar una explicación para su respuesta.
Casos de prueba:
Entrada:
Todas las salidas válidas posibles:
12345 54321 12345 54321 11111 55555
1234 5432 2345 4321 2222 4444
123 543 345 321 333 333
12 54 45 21 44 22
1 5 5 1 5 1
Entrada:
Todas las salidas posibles:
123456 654321 123456 654321 111111 666666
12345 65432 23456 54321 22222 55555
1234 6543 3456 4321 3333 4444
123 654 456 321 444 333
12 65 56 21 55 22
1 6 6 1 6 1
Entrada:
Todas las salidas posibles:
1 1 7 7 7 1
12 21 67 76 66 22
123 321 567 765 555 333
1234 4321 4567 7654 4444 4444
12345 54321 34567 76543 33333 55555
123456 654321 234567 765432 222222 666666
1234567 7654321 1234567 7654321 1111111 7777777
Entrada:
Todas las salidas posibles:
1 1 8 8 8 1
12 21 78 87 77 22
123 321 678 876 666 333
1234 4321 5678 8765 5555 4444
12345 54321 45678 87654 44444 55555
123456 654321 345678 876543 333333 666666
1234567 7654321 2345678 8765432 2222222 7777777
12345678 87654321 12345678 87654321 11111111 88888888
Entrada:
Solo salida posible:
1
Entrada:
Todas las salidas posibles:
12 21 12 21 11 22
1 2 2 1 2 1
n==13
, ¿puede ser la fila superior'33333333333333333'
(o, equivalentemente'31211101987654321'
)?mod 4
son pares estrictos para este desafío. Por lo tanto, no puede cambiar las cuatro formas para los cuatromod 4
casos. Pero buena pregunta, no obstante.Respuestas:
JavaScript (ES6),
9389 bytesDevuelve una matriz de caracteres.
Pruébalo en línea!
Patrón alternativo (mismo tamaño):
Pruébalo en línea!
Comentado
Resumen de forma
A continuación se muestra un resumen de la forma base (generada por losn mod 4
map
bucles anidados ) y la forma final (después desort
) para cada :fuente
Python 2 , 94 bytes
Pruébalo en línea!
fuente
Japt , 8 bytes
Devuelve una matriz de líneas.
Intentalo
Guardado 2 bytes gracias a Kevin .
fuente
ú
necesario? Parece que la rotación hace esto implícitamente?z
.Lienzo , 8 bytes.
Pruébalo aquí!
fuente
Perl 6 , 94 bytes
Pruébalo en línea!
Bloque de código anónimo que toma un número y devuelve una lista de líneas.
fuente
Carbón , 17 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Entrada
n
.Crea una cadena concatenando los números
1
an
.Llena un triángulo de esa longitud con la cuerda.
Gire el triángulo en sentido antihorario en
n*90
grados.Refleja todo, terminando así con un triángulo que gira en sentido horario en
n*90
grados.fuente
C # (compilador interactivo de Visual C #) , 128 bytes
Pruébalo en línea!
fuente
Ruby ,
958279 bytesPruébalo en línea!
3 bytes guardados por G B.
fuente
R ,
152139137134 bytesCódigo desenrollado:
Pruébalo en línea!
fuente
APL + WIN, 45 bytes
Solicitudes de entero
Pruébalo en línea! Cortesía de Dyalog Classic.
fuente
PowerShell , 108 bytes
Pruébalo en línea!
Un poco áspero alrededor de los bordes pero funciona. Une los dígitos 1
n
en una cadena y luego itera de 0 a la longitud de esa cadena-1. Cada vez, usa la indexación de listas para cambiar al método de espaciado correcto y al rango de números utilizado para cortar nuestra nueva cadena.fuente
Jalea , 12 bytes
Pruébalo en línea!
fuente
05AB1E (legado) ,
141210 bytesEl uso de la versión heredada como reescritura es extremadamente lenta en esto por alguna razón.
Guardado 2 bytes gracias a Kevin Cruijssen
Pruébalo en línea!
Explicación
fuente
LJη€S
aLSη
, yaS
que se aplana implícitamente.€S
que no funcionó muy bien;)Stax , 10 bytes
Ejecutar y depurarlo
fuente
PowerShell ,
10510195 bytes-4 bytes gracias Arnauld por el truco con Sort .
Pruébalo en línea!
Menos golfizado:
fuente
R ,
175172154 bytesPruébalo en línea!
¡Un horrible desastre en línea!
-3 bytes cambiando la condición de rotación
-17 bytes gracias a la sugerencia de digEmAll , y otro byte después de jugar golf.
fuente
Wolfram Language (Mathematica) , 137 bytes
Pruébalo en línea!
fuente
Python 2 , 116 bytes
Pruébalo en línea!
fuente
Rojo , 155 bytes
Pruébalo en línea!
fuente
perl 5, 117 bytes
TIO
fuente
PHP ,
116111109 bytesPruébalo en línea!
Ejecutar con
php -nF
entrada deSTDIN
.$ echo 6|php -nF t.php
fuente
Java (JDK) ,
247209188186160148 bytesPruébalo en línea!
-38 bytes
gracias a @KevinCruijssen-21 bytes
por dejar que seprintf
maneje el relleno.-2 bytes
haciendo subcadena antes de reemplazar, lo que nos permite incrementarl
en una ubicación en lugar de dos.-26 bytes
- conprintf
el relleno, la cadena llena de espacios ya no era necesaria, y las cadenas de dígitos podrían generarse aparentemente de una manera más corta.-12 bytes
al no jugar con un solo dígito en lugar de imprimir subcadenas de la cadena de dígitos perfectamente útil que ya tenemos.Sin golf
fuente
for(
pueden eliminarse.new String(new char[w=s.length()]).replace('\0',' ')
puede estar" ".repeat(w=s.length())
usando Java 11+. Puede eliminar el paréntesis alrededor de los controles ternarios.1>(i-1)%4/2
puede ser1>~-i%4/2
.w-1-l++
puede serw+~l++
. Y no tiene que contar el punto y coma final en el recuento de bytes. Que todo combinado se convierte en 209 bytes .