Terminologie
Un nombre croissant est celui où chaque chiffre est supérieur ou égal à tous les chiffres à sa gauche (ex. 12239)
Un nombre décroissant est celui où chaque chiffre est inférieur ou égal à tous les chiffres à sa gauche (ex. 95531)
Un nombre rebondissant est un nombre qui n'augmente ni ne diminue. Comme cela nécessite au moins 3 chiffres, le premier numéro rebondissant est 101
La tâche
Étant donné un entier n supérieur ou égal à 1, trouver la somme des n premiers nombres rebondissants
Règles
- C'est le golf de code, donc la réponse avec le plus petit nombre d'octets gagne
- Si votre langue a des limites sur la taille entière (ex. 2 ^ 32-1) n sera suffisamment petit pour que la somme tienne dans l'entier
- L'entrée peut être de n'importe quelle forme raisonnable (stdin, fichier, paramètre de ligne de commande, entier, chaîne, etc.)
- La sortie peut être de n'importe quelle forme raisonnable (stdout, fichier, élément utilisateur graphique qui affiche le nombre, etc.)
Cas de test
1 > 101
10 > 1065
44701 > 1096472981
sort
les numéros et vérifier s'ils sont identiques au numéro d'origine? Cela utilise un intégré (sort
), mais ce n'est pas strictement un intégré pour vérifier s'il augmente. Consultez les exigences du programme non observables et faites X sans Y sur notre message Meta "À éviter".Réponses:
Gelée ,
108 octetsEssayez-le en ligne!
Comment ça fonctionne
la source
ṚƬ
est extrêmement soigné ...Pyth , 10 octets
Essayez-le ici!
Comment ça fonctionne?
la source
K (ngn / k) , 37 octets
Essayez-le en ligne!
{
}
est une fonction avec argumentx
x{
}\0
applique le{}
sur les0
x
temps, en préservant les résultats intermédiaires(1+)
est la fonction successeur{
}(1+)/x+1
applique la fonction successeur à partir dex+1
jusqu'à ce que le{}
retourne vrai10\x
sont les chiffres décimaux dex
a:
affecter àa
|\
est le max-scan (maxima partiels) dea
&\
de façon analogue, est le min-scana~|\a
nea
correspondre à son max-scan?|
oua~&\a
son min-scan?+/
sommela source
JavaScript (ES6), 77 octets
Essayez-le en ligne!
Commenté
la source
Python 2,
1109289 octetsEssayez-le en ligne
Cette fonction détermine si un nombre est rebondissant:
la source
set(map(cmp,`x`[:-1],`x`[1:]))
.map
cette façon.x=s=0\nwhile n:b={-1,1}<=set(map(cmp,`x`[:-1],`x`[1:]));s+=x*b;n-=b;x+=1
enregistre 3 octetsPython 2 , 84 octets
Essayez-le en ligne! Ou consultez une suite de tests .
la source
Rétine , 93 octets
Essayez-le en ligne! Explication:
Initialiser
s=i=0
. (s
est le nombre de#
s avant le:
,i
le nombre de#
s après.)Répétez
n
fois.Répétez tout
i
n'est pas gonflable.Incrémentez
i
et faites une copie en décimal.Convertissez les chiffres de la copie en unaire. Le test de rebond utilise la copie unaire, donc il ne fonctionne qu'une fois
i
a été incrémenté au moins une fois.Ajouter
i
às
et supprimer la copie des chiffres unaire, de sorte que pour le passage suivant de la boucle interne du test bounciness échoue eti
s'incrémenté au moins une fois.Convertissez
s
en décimal.La version 121 octets calcule en décimal, donc pourrait fonctionner pour des valeurs plus grandes de
n
:Essayez-le en ligne! Explication:
Initialiser
s=i=0
.Répétez
n
fois.Répétez tout
i
n'est pas gonflable.Incrémentez
i
et faites une copie.Convertissez les chiffres de la copie en unaire. Le test de rebond utilise la copie unaire, donc il ne fonctionne qu'une fois
i
a été incrémenté au moins une fois.Ajouter
i
às
et supprimer la copie des chiffres unaire, de sorte que pour le passage suivant de la boucle interne du test bounciness échoue eti
s'incrémenté au moins une fois.Supprimer
i
.la source
05AB1E , 12 octets
Essayez-le en ligne!
Explication
la source
Java 8,
114112 octetsUtilise une expression régulière pour vérifier si le nombre augmente ou diminue. Essayez-le en ligne ici .
Non golfé:
la source
Python 2, 250 octets
la source
;
pour mettre autant d'instructions que possible sur une seule ligne, supprimer les espaces blancs et définir une fonction pour les 2 longues lignes qui sont très similaires, afin que vous puissiez réutiliser une partie du code. Vous pouvez également fairea=b=s=0
etlen(g)!=h-1!=len(d)
.Stax , 14 octets
Exécuter et déboguer
la source
Rouge , 108 octets
Essayez-le en ligne!
Plus lisible:
Une bonne opportunité à utiliser
form
-form i
est 5 octets plus court queto-string i
la source
MATL ,
3130 octetsEssayez-le en ligne!
la source
R , 96 octets
Essayez-le en ligne!
Explication:
la source
Rubis (123 octets)
Ça me semble assez moche. Le rebond est défini dans ce bloc
x.sort!=x&&x.sort!=x.reverse
la source
Rubis , 76 octets
Essayez-le en ligne!
la source
C (gcc), 104 octets
Essayez-le en ligne ici .
Non golfé:
la source
u+=!y?--b,o:0,++o
au lieu deu+=y?0:o+0*--b,++o
,;y&=(c-=n%10)<0?:c?2:y)c=n%10,n/=10;
au lieu de;)c=n%10,n/=10,y&=(c-=n%10)<0?:c?2:y;