Дан алгоритм выдачи сдачи s наименьшим количеством банкнот по 1000 (k1000), 500 (k500), 100 (k100) и 50 (k50):
k1000 := s div 1000
s := s mod 1000
k500 := s div 500
s := s mod 500
k100 := s div 100
s := s mod 100
k50 := s div 50
Выполните алгоритм для s = 745 и s = 1864. Составьте соответствующие таблицы значений переменных.
Операция div даёт целую часть частного, а mod — остаток от деления. Команды выполняются строго сверху вниз, поэтому для каждого шага берём текущее значение s.
При s =
| Шаг | Выполненная команда | s | k |
k |
k |
k |
|---|---|---|---|---|---|---|
| начальное значение | — | — | — | — | ||
| k |
— | — | — | |||
| s := s mod |
— | — | — | |||
| k |
— | — | ||||
| s := s mod |
— | — | ||||
| k |
— | |||||
| s := s mod |
— | |||||
| k |
При s =
| Шаг | Выполненная команда | s | k |
k |
k |
k |
|---|---|---|---|---|---|---|
| начальное значение | — | — | — | — | ||
| k |
— | — | — | |||
| s := s mod |
— | — | — | |||
| k |
— | — | ||||
| s := s mod |
— | — | ||||
| k |
— | |||||
| s := s mod |
— | |||||
| k |
Проверка:
При s =
При s =
