Etant donné un nombre entier positif n en sortie le n nombre -ième de la séquence d'euro-iginal.
Calcul de la séquence
Cette séquence est égale à OEIS A242491 .
Un nombre fait partie de ladite séquence si le nombre peut être composé en utilisant autant de pièces ou de billets en euros différents, mais un seul de chacun . Notez que vous n'avez pas à considérer les cents.
Exemple:
6
serait dans l'ordre, car il peut consister en une pièce de 1 euro et un billet de 5 euros.
4
ne serait PAS dans l'ordre, car il ne peut pas être formé avec les exigences données.
Pour donner à chacun un aperçu, voici une liste avec les valeurs en euros que vous devez considérer:
1 €, 2 €, 5 €, 10 €, 20 €, 50 €, 100 €, 200 €, 500 €
Notez que cette séquence ne varie que de 0 (oui, 0 est inclus!) À 888.
Voici les 15 premiers éléments de cette séquence:
0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, ...
Cas de test
Entrée -> Output
2 -> 1
6 -> 6
21 -> 25
33 -> 50
a(1)=1
comme la table oeis ?N<=512
?0
pourn=0
elle va bien.0->0; 1->1; 5->6; 20->25; 32->50; 511->888
au lieu de1->0; 2->1; 6->6; 21->25; 33->50; 512->888
.Réponses:
Gelée , 7 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
Python 2 , 32 octets
Essayez-le en ligne!
Python 2 , 34 octets
Essayez-le en ligne!
la source
Husk ,
8 75 octetsEssayez-le en ligne! Edit: -3 octets grâce à Zgarb!
J'ai entendu qu'il est prévu de passer
İ€
à la séquence finie[0.01,0.02,0.05,0.1,0.2,0.5,1,2,5,10,...,500]
à l'avenir. Une fois cela implémenté, le code suivant devrait fonctionner avec un nombre d'octets de 7:où
↓6
laisse tomber les six premiers éléments de la séquence. Essayez-le en ligne!la source
0
s à la sortie?Σ!Ṗ↑9İ€
devrait enregistrer un octet.İ€
modification de l'implémentation de . Qu'il retourne actuellement2500
au lieu de25
n'est qu'une coïncidence.↑9
, car le texte du défi ne mentionne pas ce qui devrait se passer pour les entrées au-delà de 512.Perl 5 , 29 octets
Code de 28 octets + 1 pour
-p
.Utilise l'indexation basée sur 0.
Essayez-le en ligne!
la source
sprintf"%o",$_-1
, en raison de la séquence indexée de 1 par exemple2 -> 1
, toute séquence OEIS commence par 1-1
clarifier l'OP jusqu'à!Gelée , 11 octets
Essayez-le en ligne!
Merci beaucoup à @Erik the Outgolfer pour son aide dans le chat!
Explication
la source
Mathematica, 47 octets
Mathematica, 48 octets
-6 octets de Martin Ender
la source
Join[x={1,2,5},10x,100x]
etSubsets@
.Java 8,
2826 octets0 indexé:
Port de la réponse Python 2 de @xnor (qui a été supprimée, d'où la réponse indexée 1 ci-dessous).
Essayez-le ici.
Ancienne réponse indexée sur 1 ( 28 octets ):
Port de la réponse Python 2 de @Tfeld avant de faire sa dernière modification . Au lieu d'utiliser
~-
un tas de fois, il--n
diminuen
de 1 juste après avoir entré la fonction lambda.Essayez-le ici.
la source
05AB1E , 7 octets
0 indexé.
Port de réponse de M. Xcoder Jelly
Essayez-le en ligne!
Explication
la source
8в4‰ε5β}J
(indexé 0)8в4‰J5öJ
pour 8 avec le tour de Dennis. Le vôtre était mieux adapté à 05AB1E en effet :)Python 2 ,
403836 octetsInspiré par la réponse de xnor , mais utilise l'indexation 1.
Essayez-le en ligne!
Python 2 ,
786562615856 octetsEssayez-le en ligne!
la source
a(1)=1
était autorisé.Gelée , 15 octets
0 indexé.
Essayez-le en ligne!
Explication
Ceci est basé sur la solution Python de xnor , où l'algorithme est n + n / 4 + n / 32 * 10 + n / 256 * 100 .
Puisque le premier n n'est pas modifié, c'est la même chose que:
Étant donné que 4, 32 et 256 sont tous des puissances de deux, ils peuvent être traduits en décalages de bits.
Le golfiness ne se traduit pas bien en Python, mais transformer les listes en chaînes Jelly d'index de page de code réduit le nombre d'octets de Jelly.
Gelée , 24 octets
Essayez-le en ligne!
la source
€
dans votre code. :) Mais -1 car c'est la première fois qu'une réponse Jelly est plus longue que ma réponse Java. XD Honte à vous (et gl & hf jouer au golf plus loin). ;)Octave , 59 octets
Essayez-le en ligne!
Explication
Le code crée la séquence complète, puis l'indexe.
D' abord, les expressions binaires des nombres
0
,1
...511
sont générés en tant que 512 x 9 matrice:(la
-48
partie est nécessaire car le résultatdec2bin
est des caractères, pas des chiffres). Cela donneEnsuite, le produit Kronecker de
[1 2 5]
et[1 10 100]
est calculéet transposé
ce qui donne les neuf valeurs possibles de l'euro comme un vecteur 9 × 1:
Multiplier par matrice la matrice et le vecteur ci-dessus
donne un vecteur 512 × 1 contenant tous les nombres possibles de la séquence, avec répétitions et non triés:
Déduplication et tri
donne la séquence complète:
Enfin, l'entrée est utilisée pour indexer dans cette séquence
pour produire la sortie.
la source
Rubis ,
2827 octetsEssayez-le en ligne!
Explication
Sortez la chaîne octale, remplacez les chiffres 4..7 par 5..8
la source
Utilitaires Bash + GNU, 20
Lit un index indexé zéro dans STDIN.
Essayez-le en ligne .
la source
05AB1E , 20 octets
Essayez-le en ligne!
1-indexé, en utilisant la formule de
[(n%3)^2 + 1]*10^floor(n/3)
pour générer les 10 premiers termes, puis en utilisant le jeu de puissance pour calculer toutes les combinaisons possibles ... Ensuite, je le trie et tirea[b]
.Voyez-le en action ci-dessous:
la source
JavaScript (ES6), 34 octets
Ou 32 octets en utilisant la bonne indexation 0:
la source
n=1
donner0
?Gelée , 20 octets
Essayez-le en ligne!
Je sais que c'est plus long que la réponse existante mais je pense que cette approche est jouable à partir d'ici: P
-2 octets grâce à Erik l'Outgolfer
la source
1,10,ȷ2
->“¢½d‘
Rétine , 42 octets
Essayez-le en ligne! Le lien inclut des cas de test. 0 indexé. Explication:
Convertissez de décimal en unaire, avec un
;
suffixe.Convertir en octal, mais toujours en utilisant une représentation unaire des chiffres avec
;
après chaque valeur unaire.Ajoutez 1 aux valeurs 4-7.
Convertissez chaque valeur plus son suffixe en décimal.
la source
Pyth , 12 octets
Utilise la sorcellerie de Dennis .
Essayez-le ici.
Pyth ,
16 1513 octetsVérifiez tous les cas de test.
Merci à Erik l'Outgofer pour quelques idées.
la source
C , 67 octets
Un port direct de la réponse JavaScript de Neil , mais j'ai pensé que cela devrait être ajouté pour être complet.
Testé sur GCC version 6.3.0. Il lancera quelques avertissements, mais compilera quand même.
la source