Какие чудесные пирожные получились у робота! Пора раскладывать их по тарелкам.
ПетяНе все гости любят клубничные пирожные. Укажите это в алгоритме.
Ребята составили для робота алгоритм, по которому ему нужно разложить клубничные пирожные по тарелкам.
Перенесите пирожные только на те тарелки, на которые робот должен положить пирожные по алгоритму из блок-схемы.
начало-проверить наличие пирожных-пирожные не закончились-да пропустить 2 тарелки-положить пирожное-нет конец
Ниже подробное разбор и адаптация алгоритма под заданные условия.
1) Что говорит исходный блок-схема
- Проверяем наличие пирожных.
- Если пирожных еще есть, пропускаем две тарелки и кладем одно пирожное на следующую тарелку.
- Затем проверяем снова: есть пирожные или нет, и повторяем до конца.
Из этого следует, что пирожные кладутся на тарелки с номерами 3, 6, 9, 12 и так далее (каждая третья тарелка), пока пирожные заканчиваются.
2) Что добавляет Петя (учет того, что не все гости любят клубничные пирожные)
- Перед тем, как положить пирожное на тарелку, нужно проверить, любит ли текущий гость клубничные пирожные.
- Если любит — кладем пирожное.
- Если не любит — не кладем на эту тарелку и переходим к следующей тарелке по той же схеме (следующая тарелка кратна 3: 6, 9, 12, …).
То есть итоговая логика: на тарелки 3, 6, 9, 12, ... кладем пирожное только если гость на этой тарелке любит клубничные пирожные; иначе пропускаем эту тарелку и идем к следующей по той же схеме.
3) Подробное решение (пошагово)
- Пусть initial_stock = количество пирожных, plates = бесконечная последовательность тарелок 3, 6, 9, 12, ...
- Текущее plate = 3
- Пока stock > 0:
- Если гость на тарелке plate любит клубничные пирожные:
- положить пирожное на тарелку plate
- stock = stock - 1
- Иначе:
- не кладем пирожное на plate
- plate = plate + 3 (переходим к следующей тарелке по схеме)
- Конец, когда stock достиг нуля или когда тарелок больше нет (но по схеме тарелки идут бесконечно, рычаг окончания — уменьшение stock до нуля)
4) Пример применения
Допустим:
- stock = 4
- Предпочтения гостей по тарелкам: на тарелке 3 любит клубничное, на 6 — не любит, на 9 — любит, на 12 — любит.
Ход выполнения:
- plate = 3: любит → кладем (stock = 3)
- plate = 6: не любит → пропускаем
- plate = 9: любит → кладем (stock = 2)
- plate = 12: любит → кладем (stock = 1)
- plate = 15: предположим, гость любит → кладем (stock = 0)
Итог: пирожные оказались на тарелках 3, 9, 12, 15 (только где гости любят клубничное и stock позволял).
5) Что выдать как ответ
- Результат алгоритма: пирожные кладутся на тарелки с номерами кратными 3 (3, 6, 9, 12, ...), но только если соответствующий гость любит клубничные пирожные. Если гость не любит, пирожное на этой тарелке не кладется; переходим к следующей тарелке по той же схеме.
6) Псевдокод (упрощенно, без привязки к языку программирования)
- stock = N (начальное количество пирожных)
- plate = 3
- while stock > 0:
- if guest_on_plate_likes_strawberry(plate):
place_pastry_on(plate)
stock = stock - 1
- plate = plate + 3
- end
7) Важные пояснения
- Если количеством пирожных ограничено, алгоритм остановится на момент, когда stock становится нулем, даже если тарелок ещё много.
- Поскольку исходная схема предполагает “передвигаться по каждой третьей тарелке”, мы сохраняем эту логику и добавляем проверку предпочтения гостя.
Если хотите, могу привести более конкретный пример с заданным количеством пирожных и конкретным списком предпочтений гостей (по каждой тарелке), чтобы увидеть, на каких именно тарелках окажутся пирожные в вашем случае.