Nie jestem pewien jak to zrobić, bo za dużo tego nie wykonywaliśmy cwiczenie 17
Przykład 9.
Zastosowanie metody zachłannej do wydawania reszty
Korzystając z podanego opisu, znajdziemy nominały,
jakimi zostanie wydana reszta w wysokości 69 zł.
Zbiór dostępnych nominałów to: {50, 20, 10, 5, 2, 1}.
Sposób wykonania algorytmu dla
R
równego 69.
Krok 1.
Największy nominał, nie większy niż
R
to 50 zł.
69
div
50 = 1 wypłacamy jeden banknot o nominale 50 zł.
R
:= 69 – 50 • 1 = 19 do wydania zostało 19 zł.
Krok 2.
Największy nominał, nie większy niż aktualne
R
to 10 zł.
19
div
10 = 1 wypłacamy jeden banknot o nominale 10 zł.
R
:= 19 – 10 • 1 = 9 do wydania zostało 9 zł.
Krok 3.
Największy nominał, nie większy niż aktualne
R
to 5 zł.
9
div
5 =1 wypłacamy jedną monetę o nominale 5 zł.
R
:= 9 – 5 • 1 = 4 do wydania zostały 4 zł.
Krok 4.
Największy nominał, nie większy niż aktualne
R
to 2 zł.
4
div
2 = 2 wypłacamy dwie monety o nominale 2 zł.
R
:= 4 – 2 • 2 = 0 wypłaciliśmy całą kwotę.
Reszta została wydana następująco: 1
·
50 zł + 1
·
10 zł + 1
·
5 zł + 2
·
2 zł = 69 zł.
Uwaga:
Operator
div
oznacza całkowitą część z dzielenia w języku Pascal.
W języku C++
należy zastosować
operator
/
, którego działanie zależy od typu danych
(w przypadku liczb całkowitych wynik również będzie całkowity).
Ćwiczenie 17.
Na podstawie opisu algorytmu wydawania reszty metodą zachłanną oraz przykładu 9.
napisz listę kroków oraz narysuj schemat blokowy do podanej specyfikacji.
Dane
: Zbiór nominałów
{50, 20, 10, 5, 2, 1}, reszta
R
.
Wyniki
: Liczba nominałów składających się na resztę
R