Un nombre sautant est défini comme un nombre positif n dont toutes les paires de chiffres décimaux consécutifs diffèrent de 1. De plus, tous les nombres à un seul chiffre sont considérés comme des nombres sautants. par exemple. 3, 45676, 212 sont des numéros sautants mais 414 et 13 ne le sont pas. La différence entre 9 et 0 n'est pas considérée comme 1
Le défi Créer un programme qui génère l'un des résultats suivants:
- Étant donné une
n
sortie d' entrée, les premiersn
nombres sautants. - Étant donné une
n
sortie d' entrée, len
e terme de la séquence.
Remarque
- Tout format d'E / S valide est autorisé
- 1 index ou 0 index est autorisé (veuillez préciser)
Voici quelques chiffres sautants:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 21, 23, 32, 34, 43, 45, 54, 56, 65, 67, 76, 78, 87, 89, 98, 101, 121, 123, 210, 212, 232, 234, 321, 323, 343, 345, 432, 434, 454, 456, 543, 545, 565, 567, 654, 656, 676, 678, 765, 767, 787, 789, 876, ...
C'est aussi A033075
n
c'est à vous de décider.Réponses:
Haskell , 57 octets
Essayez-le en ligne!
la source
Gelée , 8 octets
Un programme complet acceptant un entier
n
,, de STDIN qui imprime une liste des premiersn
nombres sautants positifs.Essayez-le en ligne!
Comment?
1
-1
[-9,-2]+[2,9]
la source
05AB1E (hérité) , 5 octets
L'entrée est indexée sur 1.
Code:
Utilise l' encodage 05AB1E . Essayez-le en ligne!
Explication
la source
Python 2 ,
7975 octets-4 octets par xnor
Essayez-le en ligne!
Dérivé de la réponse de Chas Brown . La fonction d'assistance renvoie s'il s'agit d'un nombre sautant. Si les deux derniers chiffres d'un nombre ont la différence absolue 1, ils seront alors 1 ou 10, donc 1.
g(i)
i
n
n%100%11
n%100%11%9
la source
%11
. Vous pouvez le fairef=lambda n,i=1:n and-~f(n-g(i),i+1)
si vous passez à une seule indexation.APL (Dyalog Unicode) , 36 octets SBCS
1 indexé. Merci à dzaima pour son aide à jouer au golf.
Edit: -15 octets de ngn.
Essayez-le en ligne!
Explication
Nous avons
f⍣g⍣h
, où, comme⍣
c'est un opérateur, APL traduit cela(f⍣g)⍣h
. (Contrairement aux fonctions où2×3+1
est traduit2×(3+1)
)la source
10⊥⍣¯1⊢⍺
->⍎¨⍕⍺
⍣
au lieu de récursivité:{1+⍣{∧/1=|2-/⍎¨⍕⍺}⍣⍵⊢0}
ou1+⍣{∧/1=|2-/⍎¨⍕⍺}⍣⎕⊢0
C (gcc) , 90 octets
Essayez-le en ligne!
la source
Japt, 14 octets
Produit le premier
n
e terme, indexé 1.Essayez-le
(Je sais, je sais, je suis censé faire une pause mais je suis en retrait de golf!)
la source
Python 2 ,
8887 octetsEssayez-le en ligne!
Renvoie le numéro de saut indexé 0 (c.-à-d. F (0) => 1, etc.).
la source
Haskell , 69 octets
Essayez-le en ligne!
la source
g
raccourcir de 3 octets en le réécrivant sans point, puis en utilisant<*>
:g=all((==1).abs).(zipWith(-)<*>tail).map(read.pure).show
JavaScript (ES7), 60 octets
Essayez-le en ligne!
la source
Gelée , 9 octets
-1 par Jonathan Allan
Essayez-le en ligne!
1 indexé.
la source
Swift, 228 octets
Essayez-le en ligne!
la source
Python 3 ,
122121 octetsEssayez-le en ligne!
-1 octet en passant
f
de l'impression à une fonction de générateur.g
est une fonction d'aide récursive qui détermine si une chaînes
est une "chaîne sautante" (cela fonctionne puisque les codes de caractères de 0 à 9 sont en ordre et contigus).f
est une fonction de générateur qui prendn
et donne les premiersn
nombres sautants.la source
R , 85 octets
Essayez-le en ligne!
Je soupçonne que cela peut être joué plus. Lit le nombre en utilisant
scan()
et sort le numéro de saut approprié.la source
Perl 5 , 56 octets
Essayez-le en ligne!
1 indexé, sort le n ème nombre sautant
la source
Wolfram Language (Mathematica) , 85 octets
Essayez-le en ligne!
renvoie le nième nombre
la source
Facteur , 129 octets
Essayez-le en ligne!
Sort les premiers
n
nombres sautantsla source
Catholicon , 5 octets
Essayez-le en ligne!
la source