OVH Cloud OVH Cloud

Problème à résoudre en Java

12 réponses
Avatar
jpr105
Bonjour,

Je voudrais résoudre le problème suivant en Java !

Calculer le nombre - de billets ( 500, 200, 100, 50, 20,10, 5 )
et
- de pièces ( 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01 )
nécessaires pour former un montant donné en Euros
Il s'agit de trouver le nombre minimum de coupures et pièces nécessaires.
(utilisation du modulo)

N'oubliez pas de tester votre solution !

Je vous remercie de votre aide !

10 réponses

1 2
Avatar
Régis Troadec
Salut,

"JPR105" a écrit dans le message de news:

Bonjour,

Je voudrais résoudre le problème suivant en Java !

Calculer le nombre - de billets ( 500, 200, 100, 50, 20,10, 5 )
et
- de pièces ( 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01 )
nécessaires pour former un montant donné en Euros
Il s'agit de trouver le nombre minimum de coupures et pièces nécessaires.
(utilisation du modulo)


indice : le problème du sac à dos.

a+, regis

Avatar
Adobex
"JPR105" a écrit dans le message de
news:
Bonjour,

Je voudrais résoudre le problème suivant en Java !

Calculer le nombre - de billets ( 500, 200, 100, 50, 20,10, 5 )
et
- de pièces ( 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01 )
nécessaires pour former un montant donné en Euros
Il s'agit de trouver le nombre minimum de coupures et pièces nécessaires.
(utilisation du modulo)

N'oubliez pas de tester votre solution !

Je vous remercie de votre aide !


Et toi tu fais quoi? L'inspecteur des travaux finis et tu distribue les bons
points ou quoi???

Avatar
oliv
Régis Troadec wrote:
indice : le problème du sac à dos.
Sympa l'indice, mais il l'a bien cherché... :-)


Sans passer par une optimisation combinatoire, on peut se contenter
d'une successsion de divisions euclidiennes en itérant sur les unités
monétaires successives classées par ordre décroissant et en propageant
la somme restante sur les unités suivantes.

L'algo termine pour un montant au centime puisque l'unité 1c existe,
et il est en n (taille du tableau des unités monétaires).

--
oliv

Avatar
vclassine
(JPR105) wrote in message news:...
Bonjour,
Pareil,



Je voudrais résoudre le problème suivant en Java !
ça c'est bien. C'est beau de voir de la bonne volonté comme ça!!!


Calculer le nombre - de billets ( 500, 200, 100, 50, 20,10, 5 )
et
- de pièces ( 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01 )
nécessaires pour former un montant donné en Euros
Il s'agit de trouver le nombre minimum de coupures et pièces nécessaires.
(utilisation du modulo)
TU vas de régaler...


N'oubliez pas de tester votre solution !
Je ne te suis pas, je croyais que tu voulais le faire toi-même? Ah ça

y est j'y suis, c'est un malheureux copier coller du sujet de ton
profs qui te rappelle de tester ta solution. C'est un très bon
conseil, suis-le...

Je vous remercie de votre aide !
De rien, si tu a s encore besoin de parler de ce que tu voudrais

faire, n'hésites pas à revenir...

Avatar
Stéphane Kolodziejczyk
Que cherches tu exactement ?
Le problème posé n'offre aucune difficulté: si tu ne peux résoudre
l'algorithme par toi-même arrête de poster dans les forums et renonce à
l'informatique.
Si tu apprends le java, fais juste un effort et accepte de passer 15 minutes
à résoudre ce problème (c'est le temps que tu vas passer à lire ce forum).



"JPR105" a écrit dans le message de
news:
Bonjour,

Je voudrais résoudre le problème suivant en Java !

Calculer le nombre - de billets ( 500, 200, 100, 50, 20,10, 5 )
et
- de pièces ( 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01 )
nécessaires pour former un montant donné en Euros
Il s'agit de trouver le nombre minimum de coupures et pièces nécessaires.
(utilisation du modulo)

N'oubliez pas de tester votre solution !

Je vous remercie de votre aide !


Avatar
guillespie
ca y est j'ai ton source,

en suivant la piste de JP105 ca va tout seul; il m'a fallu 20min pour le
faire, dont la moitie a faire le gui en swing !!!!

...par contre pour toi ca va etre les vingts minutes les plus chere, que tu
es jamais vu...eh ouais je fais dans la prestations de services moi!!!

un conseil developpe le toi-meme, ca ira plus vite et ce soir tu dormiras
moins con.

bisous.


--
BANZAÏÏÏÏ !!!
:-$
Avatar
Ulrich Vachon
"JPR105" a écrit dans le message de
news:
Bonjour,

Je voudrais résoudre le problème suivant en Java !

Calculer le nombre - de billets ( 500, 200, 100, 50, 20,10, 5 )
et
- de pièces ( 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01 )
nécessaires pour former un montant donné en Euros
Il s'agit de trouver le nombre minimum de coupures et pièces nécessaires.
(utilisation du modulo)

N'oubliez pas de tester votre solution !

Je vous remercie de votre aide !



Ils sont durs, mais...

Il y a deux raisons pour que tu postes un thread pareil.

- Tu es étudiant en je ne sais quoi et tu as un UV de Java. Comme ce n'est
pas ta priorité, tu t'en branles un peu et tu te dis qu'il y a bien une
pomme poire pour te le faire, histoire de se faire mousser par les habitués.
Faux, car ce n'est pas le genre de la maison et la plupart des gars qui
parcours ce forum sont des pros. Donc, rien à prouver, on est là pour le
plaisir d'apprendre et d'aider.

- Tu es étudiant en Info et comme d'hab. vous commencez à coder pour d'la
vrai en second cycle. Donc, tu es mal barré, car ce genre de problème
représente 1/100 des problèmes que rencontre un développeur dans sa journée
(à part quand on a pas envi de bosser ;-) ) En outre, cela signifie que tu
as zappé les cours d'algo. génériques sur les graphes les permutations les
arbres et j'en passe. Où, que tu es une couleuvre de première. Ou que tu es
super à la bourre.

Dans tous les cas ce n'est pas de cette façon que tu auras une réponse. Tu
devrais commencer par demander un début de piste sur "fr.comp.algorithme" et
ensuite, vu que les mecs vont te parler d'arbres, tu iras sur Google et tu
taperas "arbres + Java". La dessus, on te parlera de Collection et à la
suite de ça, on pourra t'aiguiller.

Bon code,
Ulrich.

ps : Et fait un effort, ca paye toujours, je t'assure

Avatar
Mario
Sans passer par une optimisation combinatoire,...


Le problème du sac à dos, ce n'est pas plutot de l'optimisation linéaire
? ;-)

PS : pardon, c'était juste pour causer, je sors maintenant :-)

Avatar
Julien Arlandis
Bonjour,

Je voudrais résoudre le problème suivant en Java !

Calculer le nombre - de billets ( 500, 200, 100, 50, 20,10, 5 )
et
- de pièces ( 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01 )
nécessaires pour former un montant donné en Euros
Il s'agit de trouver le nombre minimum de coupures et pièces nécessaires.
(utilisation du modulo)

N'oubliez pas de tester votre solution !

Je vous remercie de votre aide !


double montant= xxxx ;
double [] tab={500,200,100,50,20,10,5,2,1,0.5,0.2,0.1,0.05,0.02,0.01,0};

for(int i=0,j;montant!=tab[15];System.out.println(tab[i++]+"=>"+(j-1)))
for(j=0;tab[15]+tab[i + ++j-j]<=montant;tab[15]+=tab[i]);

Voilà voilà...
Ne me remercies pas ;-)

Avatar
Fufu
Bonjour,

Je voudrais résoudre le problème suivant en Java !

Calculer le nombre - de billets ( 500, 200, 100, 50, 20,10, 5 )
et
- de pièces ( 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01 )
nécessaires pour former un montant donné en Euros
Il s'agit de trouver le nombre minimum de coupures et pièces nécessaires.
(utilisation du modulo)

N'oubliez pas de tester votre solution !

Je vous remercie de votre aide !


ce n est pas optimisé du tout :

public class calculator {
private static int[] calculMoney1fois(double montant, double[]
tabMoney) {
int[] tabRepatition = new int[tabMoney.length];
for (int i = 0; i < tabMoney.length; ++i) {
if (tabMoney[i] == 0) {
tabRepatition[i] = 0;
}
else {
tabRepatition[i] = (new Double(montant /
tabMoney[i])).intValue();
montant = (montant % tabMoney[i]);
}
}
return tabRepatition;
}

private static void calculMoneyTout(double montant, double[]
tabMoney) {
double[] tabMoneyMemory = new double[tabMoney.length];
for (int j = 0; j < tabMoney.length; ++j) {
tabMoneyMemory[j] = tabMoney[j];
}
for (int j = 0; j < tabMoneyMemory.length; ++j) {
int[] tabRepatition = calculMoney1fois(521.12, tabMoney);
for (int i = 0; i < tabMoneyMemory.length; ++i) {
if (i != 0) {
System.out.print(" + ");
}
System.out.print(tabRepatition[i] + "*" + tabMoneyMemory[i]);
}
System.out.println("");
tabMoney[j] = 0;
}
}

public static void main(String[] args) {
double[] tabMoney = {
500, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02,
0.01};
double montant = 512.21;
calculMoneyTout(montant, tabMoney);
}
}

--
Vincent

1 2