Ok, eu estive um pouco de pontapé em triângulo recentemente, então aqui está outro.
O triângulo de Clark é um triângulo em que a entrada mais à esquerda de cada linha é 1 e as entradas mais à direita são compostas de múltiplos de 6, que aumentam à medida que o número da linha aumenta. Aqui está uma visualização
1 6
1 . 12
1 . . 18
1 . . . 24
1 . . . . 30
1 . . . . . 36
Assim como o Triângulo de Pascal, todas as outras entradas são a soma dos números no canto superior direito e no canto superior esquerdo.
Aqui estão as primeiras linhas preenchidas
1 6
1 7 12
1 8 19 18
1 9 27 37 24
1 10 36 64 61 30
1 11 46 100 125 91 36
Tarefa
Dado um número de linha (a partir do topo) e um número de coluna (a partir do primeiro item diferente de zero nessa linha) gera o valor nessa célula específica. Ambas as entradas podem ser indexadas 1 ou 0 (você pode misturar e combinar, se desejar). Fora dos limites do triângulo é indefinido e você pode fazer o que quiser ao consultar esses valores.
Isso é código-golfe , o objetivo é minimizar o número de bytes em sua solução.
Respostas:
MATL , 15 bytes
A primeira entrada é a linha baseada em 0; o segundo é a coluna baseada em 1.
Experimente online!
Explicação
fonte
Pascal , 132 bytes
Experimente online!
1 indexado.
fonte
CJam ,
2218 bytes-4 bytes graças a Martin Ender
Entrada é
(0-based row) (0-based column)
Experimente online!
Explicação
fonte
.+
. Normalmente, o problema é que ele retém o elemento à direita sem somar (o que custa bytes para remover), mas nesse caso, ele realmente salva bytes, porque você não precisa adicionar um6
a cada iteração. Você pode salvar ainda mais bytes, porque o deslocamento para a esquerda é livre se você anexar apenas0
uma cópia a:X6_]ri{0X$+.+}*ri=
_0\+
em vez de0X$+
é a mesma contagem de bytes, se você preferir.C #, 157 bytes
Experimente online
fonte
Python 2 , 67 bytes
Experimente online!
Abordagem de força bruta, calcule a
a
linha th e imprima ob
número th, ambas as entradas são baseadas em 0fonte
Python 3 ,
646052 bytesExperimente online!
Solução recursiva usando 1 indexação. Saídas "True" em vez de 1 para o golfe.
Graças a:
fonte
Haskell , 41 bytes
Experimente online!
Ligue usando
n # m
where onden
é o número da linha em
o número da coluna, ambos indexados em 1.fonte
Mathematica, 32 bytes
entrada
fonte
JavaScript (ES6), 38 bytes
Falha em colunas negativas e retorna múltiplos de seis para linhas negativas ou colunas excessivas.
fonte
C # (.NET Core) , 44 bytes
Leva a coluna e a linha, ambas indexadas a 1. Pode tomar linha seguida coluna trocando as entradas:
(r,c)
. Retornarárow * 6
para coordenadas fora dos limites à direita (iecolumn > row + 1
) e1
para coordenadas fora dos limites à esquerda (iecolumn < 1
).fonte
PHP , 64 bytes
função recursiva
linhas 1-indexação colunas 0-indexação
A saída para a linha = 0 e a coluna = 0 é 0, como na sequência OEIS
Experimente online!
PHP , 126 bytes
linhas 1-indexação colunas 0-indexação
A saída para a linha = 0 e a coluna = 0 é 0, como na sequência OEIS
Experimente online!
fonte
R , 77 bytes
Requer a
zoo
biblioteca; lê stdin (as entradas separadas por duas novas linhas) e retorna o valor, comNA
seleções fora dos limites.Experimente online!
fonte
Gelatina , 13 bytes
Um link monádico que obtém uma lista de
[row, entry]
(indexação 0 para entradas, indexação 1 para linhas), retornando o valor.Experimente online!
Como?
fonte