1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Босова
Задание 10 Параграф 4.3 ГДЗ Босова 8 класс 2023 (Информатика)
Босова, Босова
8 класс
Автор
Босова, Босова

Задание 10 Параграф 4.3 ГДЗ Босова 8 класс 2023 (Информатика)

Задача

Входные данные
845
Выходные данные
Следует сдать:
банкнот по 500 руб. — 1 шт.
банкнот по 200 руб. — 1 шт.
банкнот по 100 руб. — 1 шт.
банкнот по 50 руб. — 0 шт.
монетами — 45 руб.
var
s, k500, k200, k100, k50: integer;
begin
write(‘Сдача в рублях > ‘);
readln(s);
k500 := s div 500;
k200 := (s mod 500) div 200;
k100 := (s mod 500 mod 200) div 100;// остаток от 500 исключает четность s
k50 := (s mod 100) div 50;
writeln(‘Следует сдать:’);
writeln(‘банкнот по 500 руб. — ‘, k500,’ шт’);
writeln(‘банкнот по 200 руб. — ‘, k200,’ шт’);
writeln(‘банкнот по 100 руб. — ‘, k100,’ шт’);
writeln(‘банкнот по 50 руб. — ‘, k50,’ шт’);
s := s — 500 * k500 — 200 * k200 — 100 * k100 — 50 * k50;
writeln(‘монетами — ‘, s, ‘ руб.’)
end.
Окно вывода
Сдача в рублях > 845
Следует сдать:
банкнот по 500 руб. — 1 шт
банкнот по 200 руб. — 1 шт
банкнот по 100 руб. — 1 шт
банкнот по 50 руб. — 0 шт
монетами — 45 руб.

Подробный ответ

Нужно выдать сдачу наименьшим числом купюр, начиная с самых крупных: сначала по $$500$$ рублей, затем по $$200$$, $$100$$ и $$50$$ рублей. Остаток, который нельзя выдать купюрами, выводится как сумма монетами.

Для этого последовательно находим количество купюр каждого номинала с помощью целочисленного деления и остатка от деления:

  • $$k500 = s \ div \ 500$$
  • $$k200 = (s \ mod \ 500) \ div \ 200$$
  • $$k100 = (s \ mod \ 500 \ mod \ 200) \ div \ 100$$
  • $$k50 = (s \ mod \ 100) \ div \ 50$$

После этого вычисляем оставшуюся сумму:

$$s = s — 500 \cdot k500 — 200 \cdot k200 — 100 \cdot k100 — 50 \cdot k50$$

var
  s, k500, k200, k100, k50: integer;
begin
  write(‘Сдача в рублях > ‘);
  readln(s);
  k500 := s div 500;
  k200 := (s mod 500) div 200;
  k100 := (s mod 500 mod 200) div 100;
  k50 := (s mod 100) div 50;
  writeln(‘Следует сдать:’);
  writeln(‘банкнот по 500 руб. — ‘, k500, ‘ шт’);
  writeln(‘банкнот по 200 руб. — ‘, k200, ‘ шт’);
  writeln(‘банкнот по 100 руб. — ‘, k100, ‘ шт’);
  writeln(‘банкнот по 50 руб. — ‘, k50, ‘ шт’);
  s := s — 500 * k500 — 200 * k200 — 100 * k100 — 50 * k50;
  writeln(‘монетами — ‘, s, ‘ руб.’);
end.

Проверка для $$s = 845$$:

  • $$845 \ div \ 500 = 1$$
  • $$845 \ mod \ 500 = 345$$, значит $$345 \ div \ 200 = 1$$
  • $$345 \ mod \ 200 = 145$$, значит $$145 \ div \ 100 = 1$$
  • $$845 \ mod \ 100 = 45$$, значит $$45 \ div \ 50 = 0$$

Остаток:

$$845 — 500 \cdot 1 — 200 \cdot 1 — 100 \cdot 1 — 50 \cdot 0 = 45$$

Ответ

При $$s = 845$$ программа выведет: 1 купюру по 500 руб., 1 купюру по 200 руб., 1 купюру по 100 руб., 0 купюр по 50 руб., монетами — 45 руб.



Общая оценка
3.5 / 5
Другие учебники
Другие предметы