Algorithme mathématique pour le calcule du paiement en pièces
Fermé
liquidd666
Messages postés
4
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
23 août 2013
-
Modifié par liquidd666 le 23/08/2013 à 23:22
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 24 août 2013 à 13:39
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 24 août 2013 à 13:39
A voir également:
- Algorithme mathématique pour le calcule du paiement en pièces
- Comment fonctionne vinted pour le paiement - Guide
- Algorithme qui calcule le carré d'un nombre - Forum Algorithmes / Méthodes
- Formule mathématique 3ème pdf - Télécharger - Études & Formations
- Ecrire un algorithme qui permet de resoudre ax²+bx+c=0 - Forum Algorithmes / Méthodes
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? ✓ - Forum Programmation
2 réponses
liquidd666
Messages postés
4
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
23 août 2013
23 août 2013 à 23:43
23 août 2013 à 23:43
J'ai trouvé ceci pour ceux à qui cela intéresse... je ne sais pas si c'est la meilleur solution au problème dans le cas concret que j'ai présenté mais il semble assez intéressant.
https://openclassrooms.com/fr/courses
--
https://openclassrooms.com/fr/courses
--
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
24 août 2013 à 13:39
24 août 2013 à 13:39
Je viens de le faire vite fait en Java, et pour l'exemple 3 il y a un meilleur résultat :
Si tu connais Java voici le code :
Sachant que j'utilise ici le package ccm.kx.enumerator
Il faut payer 25€ 3 x 6 = 18.00 1 x 7 = 7.00 Total en chèques : 25.00€ Reste : 0.00€
Si tu connais Java voici le code :
import ccm.kx.enumerator.Bounds; import ccm.kx.enumerator.Enumeration; public class Test { public static void main(String[] args) { long[][] val = // Note : il est important que les valeurs à choisir de préférence soient en fin de tableau { {1212, 0}, {1000, 10}, { 800, 1}, { 715, 12}, { 700, 115}, { 660, 4}, { 600, 38}, { 560, 1} }; rendreMonnaie(val, 700); rendreMonnaie(val, 900); rendreMonnaie(val, 2500); } public static void rendreMonnaie(long[][] val, long x) { int n = val.length; long[] res = null; long best = Long.MAX_VALUE; long[] end = new long[n]; for (int i = 0; i < n; i++ ) end[i] = Math.min(val[i][1], x / val[i][0] + 1); Enumeration e = new Enumeration(n, Bounds.make(0), Bounds.make(end), Bounds.make(1), false); for (long[] tab : e) { long sum = 0; for (int i = 0; i < n; i++ ) sum += val[i][0] * tab[i]; if (sum >= x && sum - x < best) { best = sum - x; res = tab; } } System.out.println("Il faut payer " + x); for (int i = 0; i < n; i++ ) if (res[i] != 0) System.out.println(res[i] + " x " + val[i][0] + " = " + (res[i] * val[i][0])); System.out.println("Total en chèques : " + (x + best)); System.out.println("Reste : " + best); System.out.println("Nombre de combinaisons testées : " + e.getCardinality()); System.out.println(); } }
Sachant que j'utilise ici le package ccm.kx.enumerator
24 août 2013 à 00:39