Jump to content
Hertz

[Programare]Euro

Recommended Posts

Daca vrei sa cumperi ceva cu mai putin de 100 Euro , poti plati cu diferite 'unitati' (monede si bancnote).

In momentul de fata cele mai bune 6 unitati existente pentru a fii folosite sunt: 1,2,5,10,20 si 50.

Daca vrei sa cumperi ceva cu mai putin de 100 Euro, trebuie sa folosesti unele din aceste monede pentru a plati.

Acum sa mergem la cumparaturi cu aceste 6 unitati.

Vei cauta produse care costa de la 1 Euro la 99 Euro si vei cumpara cate unul din fiecare.De fiecare data cand cumperi, folosesti cat mai putine unitati posibile (ai un numar infinit de unitati).

Sa vedem cat de multe unitati ne trebuie daca folosim unitatile 1,2,5,10,20 si 50.

1 Euro => doar 1 unitate: 1

2 Euro => 1 unitate : 2

3 Euro => 2 unitati : 1+2

..

98 Euro => 6 unitati : 1+2+5+20+20+50

99 Euro => 6 unitati : 2+2+5+20+20+50

Acum vom lua media unitatilor folosite intre 1 si 99 , care e de 3,4 unitati.

E destul de bine, insa se poate si mai bine...

Cerinta ta este sa gasesti cea mai mica medie posibila folosind 6 unitati diferite (intregi).

Poate o moneda de 3 euro e o idee buna?Sau o bancnota de 22 euro?

Succes!

Link to comment
Share on other sites

Nu prea inteleg cerinta...adica a doua parte (cea de dupa exemplu) nu o inteleg deloc.Ignorand a doua parte, am scos asta


#include<iostream>
using namespace std;
int main(){
int i,eur[6],a,j;
for(i=0;i<6;i++){
cout<<"Moneda "<<i+1<<": ";cin>>eur[i];}
cout<<endl<<endl;
for(i=1;i<100;i++){
cout<<endl;
a=i;
cout<<a<<" Euro =>";
for(j=5;j>=0;j--)
while(a>=eur[j]){
cout<<eur[j]<<"+";
a-=eur[j];}}
return 0;}

Sper sa fie ok.

LE: Stiu ca + -ul ala de dupa fiecare suma e aiurea, insa nu prea mi-au venit idei cum sa fac altfel, decat cu vreo matrice sau ceva, insa complicam aiurea.

Alt LE: Te referi cumva la numarul_total_de_bancnote_folosite / 99 ?...Cred ca la asta te refereai, acuma vad, dupa ce am scris sursa.

Deci v2:


#include<iostream>
using namespace std;
int main(){
int i,eur[6],a,j,nr=0;
double med;
for(i=0;i<6;i++){
cout<<"Moneda "<<i+1<<": ";cin>>eur[i];}
cout<<endl<<endl;
for(i=1;i<100;i++){
a=i;
for(j=5;j>=0;j--)
while(a>=eur[j]){
nr++;
a-=eur[j];}}
med=nr/99.0;
cout<<"Media este : "<<med;
return 0;}

Si nu, nu se poate mai bine, atata timp cat exista o bancnota de 1 euro (si trebuie sa existe, ca sa poti cumpara produsul care costa 1 euro). Cred :-S

Edited by Patrunjel
Link to comment
Share on other sites

Nu prea inteleg cerinta...adica a doua parte (cea de dupa exemplu) nu o inteleg deloc.Ignorand a doua parte, am scos asta .In primul rand, topicul a fost facut acum un an. Il al doilea rand, imi miroase a backtracking. Revin cu un edit.. Alt LE: Te referi cumva la numarul_total_de_bancnote_folosite / 99 ?...Cred ca la asta te refereai, acuma vad, dupa ce am scris sursa.

Link to comment
Share on other sites

^ Nu inteleg ce vrei sa zici

^^din ce am inteles eu, valorile bancnotelor se citesc.

^^^Daca era o intrebare, e normal sa nu se mai astepte nimeni la un reply dupa un an.Insa asta e o problema, si atata timp cat nimeni nu a rezolvat-o, decat sa stea topicul fara raspuns, am zis sa postez.Nici nu prea stiu sa fac backtracking (adica stiu ideea, dar n-am implementat niciodata, cu intentie), insa daca era backtracking, ce? (Fara nicio nuanta de ironie, desi stiu ca intrebarea suna ironic)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...