Algorytm

Alex
Użytkownik
Użytkownik
Posty: 52
Rejestracja: 14 wrz 2005, o 15:50
Płeć: Kobieta
Lokalizacja: Chojnice
Pomógł: 3 razy

Algorytm

Post autor: Alex »

Nie wiem za bardzo jak to zapisać, ale mam nadzieję, że zrozumiecie, o co mi chodzi.

Napisać algorytm(schemat blokowy), który spowoduje, że bankomat będzie wypłacał dowolną sumę pieniędzy w jak najmniejszej ilości banknotów.

Np.250zł wypłaci 200zł i 50zł
arigo
Użytkownik
Użytkownik
Posty: 852
Rejestracja: 23 paź 2004, o 10:17
Płeć: Mężczyzna
Lokalizacja: Lublin
Pomógł: 28 razy

Algorytm

Post autor: arigo »

wyplaca tyle 200zl ile sie da potem tak samo 100 itd itd
półpasiec
Gość Specjalny
Gość Specjalny
Posty: 534
Rejestracja: 8 lip 2004, o 17:05
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 1 raz
Pomógł: 17 razy

Algorytm

Post autor: półpasiec »

a czy moglbys to udowodnic??
arigo
Użytkownik
Użytkownik
Posty: 852
Rejestracja: 23 paź 2004, o 10:17
Płeć: Mężczyzna
Lokalizacja: Lublin
Pomógł: 28 razy

Algorytm

Post autor: arigo »

a czy zle podalem?
imho powinno byc dobrze a co do dowodu to mozna wyjsc z tego ze kazdy duzy banknot da sie przedstawic w postaci sumy mniejszych
półpasiec
Gość Specjalny
Gość Specjalny
Posty: 534
Rejestracja: 8 lip 2004, o 17:05
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 1 raz
Pomógł: 17 razy

Algorytm

Post autor: półpasiec »

wez na przyklad: kwota to 13, a nominaly to 10,7,6,1
zrob tak
jesli masz k nominalow i oznaczysz \(\displaystyle{ D(n)}\) najmniejsza liczbe banknotow ktora mozna wyplacic n, to
\(\displaystyle{ D(n)=min\{D(n-x_i) | 1\leq i q k\}+1}\)
arigo
Użytkownik
Użytkownik
Posty: 852
Rejestracja: 23 paź 2004, o 10:17
Płeć: Mężczyzna
Lokalizacja: Lublin
Pomógł: 28 razy

Algorytm

Post autor: arigo »

wg mnie autor postu mial na mysli standardowe nominaly tzn 200,100,50,20,10

zreszta chyba moj post jest prawdziwy dla kazdych nominalow spelniajacych warunek ze suma dwoch dowolnych banknotow nie jest wieksza od innego ktory jest wiekszy od kazdego z nich z osobna
olwe
Użytkownik
Użytkownik
Posty: 26
Rejestracja: 27 lis 2005, o 18:07
Płeć: Mężczyzna
Lokalizacja: Wejherowo
Podziękował: 5 razy
Pomógł: 3 razy

Algorytm

Post autor: olwe »

rozwiazanie w c++

int main()
{
int nominal[5]={200,100,50,20,10};
int a;
std::cin>>a;
int n=0;
int ile[5]={0,0,0,0,0};

for ( ; ; )
{
if (a>=nominal[n])
{
ile[n]=(a-a%nominal[n])/nominal[n];
}
a=a%nominal[n];
n=n+1;
if (n==5)
{break;}
}

std::cout
ODPOWIEDZ