Vous écrivez un programme pour une caisse enregistreuse automatique. L'utilisateur doit changer avec le moins de pièces utilisées. Écrivez un programme qui prend un montant (disons 1,53 $) et donne des changements en coupures américaines - dans ce cas: 1 x billet d'un dollar, 1 x cinquante cents et 3 x un cent. Le programme le plus court sera le gagnant. Points bonus pour prendre en charge d'autres devises (par exemple, les dénominations britanniques) et les devises inhabituelles (1, 2, 3 cents?)
Vous avez ces dénominations américaines: 1 cent, 5 cents, 10 cents, 25 cents, 50 cents, 1 dollar (billet ou pièce), 2 dollars, 5 dollars, 10 dollars.
Vous avez ces dénominations britanniques: 1 pence, 2 pence, 5 pence, 10 pence, 20 pence, 50 pence, 1 £, 2 £, 5 £ (billet ou pièce), 10 £.
Réponses:
Windows PowerShell, 108
111117Très première tentative, non golfée jusqu'à présent:
Notes de mise en œuvre:
Si 3 et 4 n'ont pas besoin d'être satisfaits (c'est-à-dire que je contrôle le format d'entrée ;-)), alors le programme suivant suffit (71):
la source
Mathematica: 110 caractères
Usage
Ou
(6 caractères de plus) donne
Pour les autres dénominations, il suffit de changer le tableau des justifications {10, ...., 5 / 100,1 / 100}
la source
D: 225 caractères
Plus lisiblement:
Ne gère que la devise américaine. Prend la valeur en tant que valeur à virgule flottante sur la ligne de commande (doit avoir le premier 0 pour les valeurs inférieures à 1 dollar). N'accepte pas $ comme partie de la valeur. Affiche le nombre de chaque type de billet / pièce sur une ligne distincte. Par exemple, une entrée de 1,53 entraîne:
0 20
0 10
0 5
1 1
2 25/100
0 10/100
0 5/100
3 1/100
la source
Mathematica, 51 octets
contribution
production
Mathematica, 82 octets - AVEC BONUS--
Contribution
production
la source
Javascript,
8483 octetsUtilise un algorithme gourmand.
la source
APL (Dyalog) , 19 octets
Demande le montant souhaité, puis les coupures exprimées dans la plus petite unité (centimes / cents).
Essayez-le en ligne!
⎕CY'dfns'
C o p y l'dfns
espace de travail⎕ stamps⎕
demander des entrées et utiliser comme arguments pour lastamps
fonctionla source