(no, esos no )
El reto
Tendrás dos entradas. El primero es un número entero positivo n > 0
, que se utiliza para generar un n x n
triángulo rectángulo de los números 1, 2, 3, ... n
. Este triángulo comienza en una esquina y aumenta horizontal y verticalmente en uno y diagonalmente en dos. Vea los ejemplos a continuación para aclaraciones. Mantenga un espacio entre columnas y mantenga todos los números alineados a la derecha en sus columnas particulares. (Esto es ascii-art después de todo).
La segunda entrada, x
es uno de los cuatro caracteres ASCII únicos que usted elige que determina la esquina inicial del triángulo (y, por lo tanto, la orientación). Por ejemplo, podría usar 1,2,3,4
or a,b,c,d
o #,*,!,)
, etc. Especifique en su respuesta cómo funciona la orientación.
Para aclarar este desafío, utilizaré el 1,2,3,4
que corresponderá a 1
la esquina superior izquierda, 2
a la esquina superior derecha y así sucesivamente en el sentido de las agujas del reloj.
Los ejemplos
Por ejemplo, para n = 5
, x = 1
generar lo siguiente:
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
Para la entrada n = 11
, x = 1
envíe lo siguiente (tenga en cuenta los espacios adicionales para que los dígitos individuales estén alineados a la derecha):
1 2 3 4 5 6 7 8 9 10 11
2 3 4 5 6 7 8 9 10 11
3 4 5 6 7 8 9 10 11
4 5 6 7 8 9 10 11
5 6 7 8 9 10 11
6 7 8 9 10 11
7 8 9 10 11
8 9 10 11
9 10 11
10 11
11
Con entrada n=6
y x=2
salida:
6 5 4 3 2 1
6 5 4 3 2
6 5 4 3
6 5 4
6 5
6
Con entrada n = 3
y x = 4
salida:
3
2 3
1 2 3
Con entrada n = 1
y cualquiera x
, salida:
1
Las normas
- Las nuevas líneas iniciales / finales u otros espacios en blanco son opcionales, siempre que los números se alineen adecuadamente. (Por ejemplo, el espacio en blanco al final para hacer una salida cuadrada es aceptable).
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- La salida puede ser a la consola, guardada como una imagen, devuelta como una lista de cadenas, etc. Cualquier formato conveniente y permitido .
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
Respuestas:
Jalea , 13 bytes
Pruébalo en línea!
Argumento a la izquierda: Argumento a la
n
derecha:
x
(0
= arriba a la izquierda,1
= arriba a la derecha,2
= abajo a la izquierda,3
= abajo a la derecha)fuente
MATL , 18 bytes
La primera entrada es
n
. La segunda entrada esx
, que puede ser:0
: arriba a la izquierda1
: abajo a la izquierda2
: abajo a la derecha3
: parte superior derecha(O puede ser cualquier otro número entero, que se interpreta módulo 4).
¡Pruébalo en MATL Online!
fuente
APL (Dyalog) , 29 bytes
Pruébalo en línea!
¿Cómo?
¨⍳⍵
- para cada unoi
en el rango den
(⍳+⍵-⊢)
- gama de productosi
con adición vectorizada den - i
↑⌽
- invertir y aplanar⌽∘⍉
- Gira a la derecha⍣⍺⊢
-x
tiempos' '@(=∘0)
- eliminar cerosfuente
JavaScript
130128154142138135133 bytes* problemas de relleno solucionados
fuente
Python 2 ,
124120 bytesPruébalo en línea! o Pruebe todos los casos de prueba
(r+[n]+['']*i)[-n:]
agregará algunas cadenas vacías a la lista de números, y cortará al tamaño correcto,zip
con[::1-x%4/2*2]
y[::1-x/3*2]
hará la rotación, y%%%ds'%len(`n`)*n
generará una cadena para fomar (como' %3s %3s %3s'...
) para usar en cada número + lista de cadenas vacíafuente
Mathematica, 89 bytes
Aquí hay otra solución que funciona en TIO
Mathematica, 122 bytes
Pruébalo en línea!
fuente
Carbón , 39 bytes
Pruébalo en línea! Nota: espacio final. El enlace es a la versión detallada del código. El segundo valor es el número de rotaciones en sentido antihorario, por lo que 0 es superior izquierda, 1 inferior izquierda, 2 inferior derecha, 3 superior derecha. Explicación:
fuente
Javascript (ES6),
241222214 bytesMenos golf
Nota sobre orientación.
El segundo parámetro es un carácter de {'0', '1', '2', '3'} y el
&
operador lo convierte automáticamente en un número . Si se establece el bit 0 (lsb) del número, las líneas se voltean verticalmente. Si se establece el bit 1 (nlsb), las columnas se voltean horizontalmente. Se pueden usar otros caracteres de dígitos decimales con resultados predecibles.Espacios finales
Las entradas en blanco en la cadena de salida se han reemplazado con espacios, lo que significa que las líneas tienen espacios finales en las orientaciones '0' y '1'.
fuente
Lua, 250 bytes
Toma los parámetros [w] idth y [m] ode usando 1,2,3,4 para los modos como se describe en el ejemplo.
fuente
05AB1E (61 bytes)
Pruébalo en línea
fuente