Votre tâche consiste à, étant donné deux entiers positifs, et , renvoyer les premiers nombres dans la séquence des plages incrémentielles.
La séquence de plages incrémentielles génère d'abord une plage de un à inclus. Par exemple, si était , il générerait la liste . Il ajoute ensuite à plusieurs reprises les dernières valeurs incrémentées de à la liste existante et continue.
Une entrée de par exemple:
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]
Cas de test:
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]
/
//
Gelée , 4 octets
Un lien dyadique acceptant deux entiers positifs,
x
à gauche etn
à droite, ce qui donne une liste d'entiers positifs.Essayez-le en ligne!
Comment?
la source
p
...R , 33 octets
Essayez-le en ligne!
Ports de la solution Python de Jonathan Allan .
R , 36 octets
Essayez-le en ligne!
Ma solution originale; génère une matricen×x avec chaque colonne comme incréments, c'est-à-dire 1 … n , 2 … n + 1 , … , puis prend les X premières entrées (en descendant les colonnes).
la source
05AB1E , 6 octets
Port de la réponse Jelly de @JonathanAllan , alors assurez-vous de voter pour lui!
La première entrée estx , la deuxième entrée est n .
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
Ma propre approche initiale était de 8 octets :
La première entrée estn , la deuxième entrée est x .
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
la source
Perl 6 , 18 octets
Essayez-le en ligne!
Fonction curry
f(x)(n)
.Explication
la source
Brain-Flak , 100 octets
Avec commentaires et mise en forme:
Essayez-le en ligne!
la source
J ,
1312 octetsEssayez-le en ligne!
Comment
Nous prenons
x
comme argument de gauche,n
comme droite. Prenonsx = 8
etn = 3
pour cet exemple:+/&i.
: Transformez les deux arguments en créant des plages entièresi.
, c'est-à-dire que l'argument gauche devient0 1 2 3 4 5 6 7
et l'argument droit devient0 1 2
. Maintenant, nous créons une "table d'addition à+/
partir de ces deux:1 +
: Ajoutez 1 à chaque élément de ce tableau:[: ,
: Aplatissez-le,
:[ $
: Formez-le$
pour qu'il ait le même nombre d'éléments que l'argument gauche non transformé d'origine[
, c'est-à-direx
:la source
Octave , 25 octets
Fonction anonyme qui entre les nombres
n
etx
, et sort un vecteur ligne.Essayez-le en ligne!
Comment ça fonctionne
Considérez
n=3
etx=13
.Le code
(1:n)'
donne le vecteur colonne(0:x)
Donne ensuite le vecteur ligneL'addition
(1:n)'+(0:x)
est élément par élément avec diffusion, et donc elle donne une matrice avec toutes les paires de sommes:L'indexation avec
(1:x)
récupère les premiersx
éléments de cette matrice dans l'ordre linéaire des colonnes (vers le bas, puis à travers), comme vecteur de ligne:la source
Haskell , 31 octets
Essayez-le en ligne!
Cela pourrait être mon type de récursivité préféré. Nous commençons avec les valeurs de 1 à n, puis nous concaténons ces mêmes valeurs (via l'auto-référence) +1. nous prenons ensuite les premières valeurs x.
la source
Forth (gforth) , 34 octets
Essayez-le en ligne!
Explication du code
la source
MATL ,
16, 10 octetsEssayez-le en ligne!
-6 octets économisés grâce à Guiseppe et Luis Mendo!
Explication:
la source
Gaia , 8 octets
Essayez-le en ligne!
Fait essentiellement la même chose que les réponses Octave et MATL .
la source
Gelée , 5 octets
Essayez-le en ligne!
la source
Rubis , 32 octets
Essayez-le en ligne!
la source
Japt
-m
,127 octetsPort de la solution Python de Jonathan .
Prend
x
comme première entrée.Essayez-le
la source
JavaScript, 36 octets
Essayez-le en ligne!
la source
alert
ouprint
au lieu de retourner un tableau peut réduire cela à 34 octets:n=>g=x=>x&&print(g(--x)|1+x%n+x/n)
Perl 5
-na
, 43 octetsEssayez-le en ligne!
la source
K (oK) ,
1716 octetsEssayez-le en ligne!
la source
Stax , 6 octets
Exécuter et déboguer
Déballé et expliqué:
la source
Alchimiste , 77 octets
Essayez-le en ligne!
Incrémente et sort un compteur n fois, puis soustrait n-1 avant de répéter.
la source
Fusain , 18 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. J'ai rêvé de semer la liste avec une plage indexée zéro, puis de la couper à nouveau, mais c'était en fait 2 octets de plus. Explication:
la source
JS, 54 octets
Essayez-le en ligne!
la source
f=
. Vous pouvez enregistrer un octet en curryant les paramètres (n=>x=>
) et un autre en étalant et en mappant le tableau ([...Array(x)].map()
).Haskell,
3433 octetsEssayez-le en ligne!
la source
Perl 5 , 39 octets
Essayez-le en ligne!
la source
C (gcc) ,
4944 octetsUtilisation de la récursivité pour enregistrer certains octets.
Essayez-le en ligne!
la source
APL + WIN,
29 2316 octetsOrigine de l'index = 0 et demande n et x
Essayez-le en ligne! Gracieuseté de Dyalog Classic
la source
C (clang), 843 octets
la source
argc
,argv
etranges
). En outre, pas besoin d'ajouter de messages d'avertissement. Vous pouvez supposer que l'entrée est valide, sauf indication contraire du défi.Icône , 48 octets
Essayez-le en ligne!
la source
C # (Visual C # Interactive Compiler) , 41 octets
Essayez-le en ligne!
la source
Facteur , 55 octets
Essayez-le en ligne!
la source