(não, não aqueles )
O desafio
Você receberá duas entradas. O primeiro é um número inteiro positivo n > 0
, usado para gerar um n x n
triângulo retângulo dos números 1, 2, 3, ... n
. Esse triângulo começa em um canto e aumenta horizontal e verticalmente em um e diagonalmente em dois. Veja os exemplos abaixo para esclarecimentos. Mantenha um espaço entre as colunas e mantenha todos os números alinhados à direita em suas colunas específicas. (Isso é arte ascii, afinal).
A segunda entrada,, x
é um dos quatro caracteres ASCII únicos e distintos de sua escolha, que determina o canto inicial do triângulo (e, portanto, a orientação). Por exemplo, você pode usar 1,2,3,4
or a,b,c,d
ou #,*,!,)
, etc. Especifique na sua resposta como a orientação funciona.
Para esclarecimentos neste desafio, usarei o 1,2,3,4
que corresponderá à 1
parte superior esquerda, 2
à parte superior direita e assim por diante.
Os exemplos
Por exemplo, para n = 5
, x = 1
produza o seguinte:
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
Para entrada n = 11
, digite x = 1
o seguinte (observe os espaços extras para que os dígitos únicos estejam alinhados à direita):
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
Com entrada n=6
e x=2
saída:
6 5 4 3 2 1
6 5 4 3 2
6 5 4 3
6 5 4
6 5
6
Com entrada n = 3
e x = 4
saída:
3
2 3
1 2 3
Com entrada n = 1
e qualquer x
saída,
1
As regras
- Novas linhas à esquerda / à direita ou outro espaço em branco são opcionais, desde que os números sejam alinhados adequadamente. (Por exemplo, espaço em branco à direita para gerar uma saída quadrada é aceitável).
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- A saída pode ser no console, salva como uma imagem, retornada como uma lista de cadeias, etc. Qualquer formato conveniente e permitido .
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
Respostas:
Gelatina , 13 bytes
Experimente online!
Argumento à esquerda: Argumento à
n
direita:
x
(0
= canto superior esquerdo,1
= canto superior direito,2
= canto inferior esquerdo,3
= canto inferior direito)fonte
MATL , 18 bytes
A primeira entrada é
n
. A segunda entrada éx
, que pode ser:0
: canto superior esquerdo1
: inferior esquerdo2
: canto inferior direito3
: canto superior direito(Ou pode ser qualquer outro número inteiro, que é interpretado no módulo 4).
Experimente no MATL Online!
fonte
APL (Dyalog) , 29 bytes
Experimente online!
Quão?
¨⍳⍵
- para cada umi
na gama den
(⍳+⍵-⊢)
- gama de produtosi
com adição vetorizada den - i
↑⌽
- inverter e achatar⌽∘⍉
- vire à direita⍣⍺⊢
-x
vezes' '@(=∘0)
- remover zerosfonte
JavaScript
130128154142138135133 bytes* problemas de preenchimento corrigidos
fonte
Python 2 ,
124120 bytesExperimente online! ou Experimente todos os casos de teste
(r+[n]+['']*i)[-n:]
adicionará algumas seqüências de caracteres vazias à lista de números e cortará no tamanho certo,zip
com[::1-x%4/2*2]
e[::1-x/3*2]
fará a rotação, e%%%ds'%len(`n`)*n
gerará uma sequência de formatação (como' %3s %3s %3s'...
) a ser usada em cada número + lista de sequências vaziafonte
Mathematica, 89 bytes
aqui está outra solução que funciona no TIO
Mathematica, 122 bytes
Experimente online!
fonte
Carvão , 39 bytes
Experimente online! Nota: Espaço à direita. Link é a versão detalhada do código. O segundo valor é o número de rotações no sentido anti-horário, de modo que 0 é superior esquerdo, 1 inferior esquerdo, 2 inferior direito, 3 superior direito. Explicação:
fonte
Javascript (ES6),
241222214 bytesMenos Golfe
Nota sobre orientação.
O segundo parâmetro é um caractere de {'0', '1', '2', '3'} e digite automaticamente convertido em um número pelo
&
operador. Se o bit 0 (lsb) do número estiver definido, as linhas serão invertidas verticalmente. Se o bit 1 (nlsb) estiver definido, as colunas serão invertidas horizontalmente. Outros caracteres de dígitos decimais podem ser usados com resultados previsíveis.Espaços desnecessários à direita do texto
As entradas em branco na sequência de saída foram substituídas por espaços, o que significa que as linhas têm espaços à direita nas orientações '0' e '1'.
fonte
Lua, 250 bytes
Toma os parâmetros [w] idth e [m] ode usando 1,2,3,4 para os modos, conforme descrito no exemplo.
fonte
05AB1E (61 bytes)
Experimente online
fonte