A maioria das pessoas conhece o triângulo de Pascal.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
O triângulo de Pascal é um autômato em que o valor de uma célula é a soma das células no canto superior esquerdo e no canto superior direito. Agora vamos definir um triângulo semelhante. Em vez de apenas levar as células para o canto superior esquerdo e o canto superior direito, levaremos todas as células ao longo de duas linhas infinitas que se estendem para o canto superior esquerdo e o canto superior direito. Assim como o triângulo de Pascal, começamos com um único 1
preenchido infinitamente por zeros e construímos para baixo a partir daí.
Por exemplo, para calcular a célula indicada com um x
1
1 1
2 2 2
4 5 5 4
x
Nós somaríamos as seguintes células
.
. .
2 . 2
. 5 5 .
x
Fazendo nosso novo celular 14
.
Tarefa
Dado um número da linha ( n ), e a distância a partir da (esquerda r ) Calcular e emitir o r po diferente de zero de entrada a partir da esquerda na n -ésima linha. (o equivalente no triângulo de Pascal é nCr ). Você pode assumir que r é menor que n .
Isto é código-golfe , o objetivo é minimizar o número de bytes em sua solução.
Casos de teste
0,0 -> 1
1,0 -> 1
2,0 -> 2
4,2 -> 14
6,3 -> 106
Aqui estão as primeiras duas linhas em forma de triângulo:
1
1 1
2 2 2
4 5 5 4
8 12 14 12 8
16 28 37 37 28 16
32 64 94 106 94 64 32
64 144 232 289 289 232 144 64
128 320 560 760 838 760 560 320 128