Sua tarefa é, dados dois inteiros positivos, e , retornar os primeiros números na sequência de intervalos incrementais.
A sequência de intervalo incremental primeiro gera um intervalo de um a inclusive. Por exemplo, se fosse , isso geraria a lista . Em seguida, ele anexa repetidamente os últimos valores incrementados por à lista existente e continua.
Uma entrada de por exemplo:
n=3
1. Get range 1 to n. List: [1,2,3]
2. Get the last n values of the list. List: [1,2,3]. Last n=3 values: [1,2,3].
3. Increment the last n values by 1. List: [1,2,3]. Last n values: [2,3,4].
4. Append the last n values incremented to the list. List: [1,2,3,2,3,4]
5. Repeat steps 2-5. 2nd time repeat shown below.
2nd repeat:
2. Get the last n values of the list. List: [1,2,3,2,3,4]. Last n=3 values: [2,3,4]
3. Increment the last n values by 1. List: [1,2,3,2,3,4]. Last n values: [3,4,5].
4. Append the last n values incremented to the list. List: [1,2,3,2,3,4,3,4,5]
Casos de teste:
n, x, Output
1, 49, [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49]
2, 100, [1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51]
3, 13, [1,2,3,2,3,4,3,4,5,4,5,6,5]
/
por//
Gelatina , 4 bytes
Um link diádico que aceita dois números inteiros positivos,
x
à esquerda en
à direita, que produz uma lista de números inteiros positivos.Experimente online!
Quão?
fonte
p
...R , 33 bytes
Experimente online!
Portos A solução Python de Jonathan Allan .
R , 36 bytes
Experimente online!
Minha solução original; gera uma matrizn×x com cada coluna como incrementos, ou seja, 1…n,2…n+1,… , em seguida, pega as primeiras x entradas (descendo as colunas).
fonte
05AB1E , 6 bytes
Porto da resposta de @JonathanAllan Jelly , por isso não deixe de vota-lo!
A primeira entrada éx , a segunda entrada é n .
Experimente online ou verifique todos os casos de teste .
Explicação:
Minha abordagem inicial foi de 8 bytes :
A primeira entrada én , a segunda entrada é x .
Experimente online ou verifique todos os casos de teste .
Explicação:
fonte
Perl 6 , 18 bytes
Experimente online!
Função ao curry
f(x)(n)
.Explicação
fonte
Flak cerebral , 100 bytes
Com comentários e formatação:
Experimente online!
fonte
J ,
1312 bytesExperimente online!
como
Tomamos
x
como argumento à esquerda,n
como à direita. Vamos pegarx = 8
e,n = 3
para este exemplo:+/&i.
: Transforme os dois argumentos criando intervalos inteirosi.
, ou seja, o argumento esquerdo se torna0 1 2 3 4 5 6 7
e o argumento direito se torna0 1 2
. Agora criamos uma "tabela de adição+/
desses dois:1 +
: Adicione 1 a cada elemento desta tabela:[: ,
: Achatá-lo,
:[ $
: Dê forma a ele$
para que tenha o mesmo número de elementos que o argumento esquerdo não transformado original[
, ou sejax
:fonte
Oitava , 25 bytes
Função anônima que insere números
n
ex
, e gera um vetor de linha.Experimente online!
Como funciona
Considere
n=3
ex=13
.O código
(1:n)'
fornece o vetor da colunaEm seguida,
(0:x)
fornece o vetor de linhaA adição
(1:n)'+(0:x)
é elemento-elemento na transmissão e, portanto, fornece uma matriz com todos os pares de somas:A indexação com
(1:x)
recupera os primeirosx
elementos dessa matriz na ordem linear principal da coluna (abaixo e depois) como um vetor de linha:fonte
Haskell , 31 bytes
Experimente online!
Este pode ser o meu tipo favorito de recursão. Começamos com os valores de 1 a ne concatenamos os mesmos valores (via auto-referência) +1. então apenas pegamos os primeiros x valores.
fonte
Quarto (gforth) , 34 bytes
Experimente online!
Código Explicação
fonte
MATL ,
16, 10 bytesExperimente online!
-6 bytes salvos graças a Guiseppe e Luis Mendo!
Explicação:
fonte
Gaia , 8 bytes
Experimente online!
Faz basicamente a mesma coisa que as respostas Octave e MATL .
fonte
Gelatina , 5 bytes
Experimente online!
fonte
Ruby , 32 bytes
Experimente online!
fonte
Japonês
-m
,127 bytesSolução Python do porto de Jonathan .
Toma
x
como a primeira entrada.Tente
fonte
JavaScript, 36 bytes
Experimente Online!
fonte
alert
ou emprint
vez de retornar uma matriz pode reduzir isso para 34 bytes:n=>g=x=>x&&print(g(--x)|1+x%n+x/n)
Perl 5
-na
, 43 bytesExperimente online!
fonte
K (oK) ,
1716 bytesExperimente online!
fonte
Stax , 6 bytes
Execute e depure
Descompactado e explicado:
fonte
Alquimista , 77 bytes
Experimente online!
Incrementa e gera um contador n vezes e subtrai n-1 antes de repetir.
fonte
Carvão , 18 bytes
Experimente online! Link é a versão detalhada do código. Eu sonhava em semear a lista com um intervalo indexado a zero e depois cortá-la novamente, mas isso era na verdade 2 bytes mais longo. Explicação:
fonte
JS, 54 bytes
Experimente online!
fonte
f=
. Você pode salvar um byte alterando os parâmetros (n=>x=>
) e outro espalhando e mapeando a matriz ([...Array(x)].map()
).Haskell,
3433 bytesExperimente online!
fonte
Perl 5 , 39 bytes
Experimente online!
fonte
C (gcc) ,
4944 bytesUsando recursão para salvar alguns bytes.
Experimente online!
fonte
APL + WIN,
29 2316 bytesOrigem do índice = 0 e solicita nex
Experimente online! Cortesia de Dyalog Classic
fonte
C (clang), 843 bytes
fonte
argc
,argv
eranges
). Além disso, não é necessário adicionar nenhuma mensagem de aviso. Você pode assumir que a entrada é válida, a menos que o desafio diga o contrário.Ícone , 48 bytes
Experimente online!
fonte
C # (compilador interativo do Visual C #) , 41 bytes
Experimente online!
fonte
Fator , 55 bytes
Experimente online!
fonte