В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
oleh09156
oleh09156
19.11.2021 22:33 •  Информатика

На бесконечном поле есть горизонтальная и вертикальная стены. От правого
конца горизонтальной стены на некотором расстоянии отходит вертикальная
стена. Длины стен неизвестны. Ширина прохода между правым концом горизонтальной стены и нижним концом вертикальной стены неизвестны. Робот находится в
клетке, расположенной непосредственно над горизонтальной стеной у её
левого конца.
На рисунке указан один из возможных расположения стен и Робота
(Робот обозначен буквой «Р»).
Напишите для Робота алгоритм, закрашивающий все клетки, расположенные
непосредственно левее вертикальной стены. Проход должен
остаться незакрашенным. Робот должен закрасить только клетки,
удовлетворяющие данному условию. Например, для приведённого рисунка Робот должен закрасить следующие клетки (см. рисунок).


На бесконечном поле есть горизонтальная и вертикальная стены. От правогоконца горизонтальной стены н

Показать ответ
Ответ:
Ларейн2772
Ларейн2772
20.03.2023 02:45
Добрый день! Давайте разберемся с задачей.

У нас есть три вида билетов: на 1 поездку, на 10 поездок и на 60 поездок. Нам нужно определить, сколько билетов каждого вида мы должны приобрести, чтобы суммарное количество оплаченных поездок было не меньше n, а общая стоимость приобретенных билетов была минимальной.

Предлагаю решить эту задачу пошагово в следующем порядке:

1. Начнем с того, что прочитаем входные данные. У нас есть число n - количество поездок, которые пассажир планирует совершить. Для этого воспользуемся функцией input(). Напишем:

n = int(input())

2. Теперь нам нужно определить, сколько билетов каждого вида нам нужно приобрести.

Начнем с билетов на 60 поездок. Один такой билет стоит 440 рублей, а значит одна поездка на 60-кратном билете стоит 440 / 60 = 7.33 рубля.
Чтобы узнать, сколько поездок на 60-кратном билете можно оплатить, мы должны разделить количество денег, которое у нас есть, на стоимость одной поездки в билете на 60 поездок. Но для начала проверим, делится ли количество поездок, которое пассажир планирует совершить, на 60 без остатка. Для этого воспользуемся операцией %, которая возвращает остаток от деления. Если остаток равен 0, значит количество поездок делится на 60 без остатка и нам нужно приобрести только билеты на 60 поездок. Если остаток не равен 0, значит количество поездок не делится на 60 без остатка и нам нужно будет приобрести еще билеты на 1 и/или на 10 поездок.

Напишем код для определения количества билетов на 60 поездок:

if n % 60 == 0:
count_60 = n // 60 # количество билетов на 60 поездок
else:
count_60 = n // 60 + 1

3. Теперь перейдем к билетам на 10 поездок. Мы уже знаем количество билетов на 60 поездок. Чтобы определить, сколько билетов на 10 поездок нам нужно приобрести, вычтем из общего количества поездок количество поездок, которые можно сделать на 60-кратном билете. То есть, количество билетов на 10 поездок будет равно остатку от деления общего количества поездок на 10. Напишем:

count_10 = (n - count_60 * 60) // 10

4. И, наконец, перейдем к билетам на 1 поездку. Определить количество билетов на 1 поездку можно, просто вычтя из общего количества поездок уже оплаченные поездки на 10 и 60 поездок. Напишем:

count_1 = n - count_10 * 10 - count_60 * 60

5. Теперь остается только вывести полученные значения. Напишем:

print(count_1, count_10, count_60)

Таким образом, получается полный код для решения этой задачи на языке Python:

```
n = int(input())

if n % 60 == 0:
count_60 = n // 60
else:
count_60 = n // 60 + 1

count_10 = (n - count_60 * 60) // 10
count_1 = n - count_10 * 10 - count_60 * 60

print(count_1, count_10, count_60)
```

Надеюсь, что данное пошаговое решение помогло вам понять, как решить данную задачу школьному ученику. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!
0,0(0 оценок)
Ответ:
rafik14
rafik14
14.10.2020 07:54
Хорошо, давайте решим данную задачу поэтапно.

Первый шаг: ознакомление с задачей.
Мы изначально имеем квадрат размером 2х2 клетки, в котором находится робот. В квадрате также есть вертикальная стенка, которая примыкает к верхней стене квадрата. Наша цель состоит в том, чтобы переместить робота в левый верхний угол квадрата.

Второй шаг: описание обстановки.
Для начала определим, где именно находится робот и где находится стена.

На первой картинке робот находится в верхней левой клетке и стена находится в правой верхней клетке.
На второй картинке робот находится в левой нижней клетке и стена находится в правой верхней клетке.
На третьей картинке робот находится в верхней правой клетке и стена находится в правой верхней клетке.
На четвертой картинке робот находится в верхней правой клетке и стена отсутствует.

Для того чтобы решить задачу, нужно написать команду, которая будет работать в каждой из этих ситуаций.

Третий шаг: разработка решения.
Мы знаем, что робот должен оказаться в левом верхнем углу квадрата. Учитывая это, мы можем дать ему две команды: двигаться вверх и двигаться влево.
Однако, перед тем как дать команду на движение влево, мы должны проверить, есть ли стена вправо от нас.

Четвертый шаг: использование условных операторов if-else.
Определяем условия, в которых нужно выполнить каждую команду:
- Если справа есть стена, то сначала движемся вверх, а затем влево.
- Если справа нет стены, то сразу двигаемся влево.

Пятый шаг: написание программы.
Объединим все шаги в одну программу на языке программирования:

if (состояние == "робот в верхней левой клетке и стена в правой верхней клетке") {
движение_вверх();
движение_влево();
} else if (состояние == "робот в левой нижней клетке и стена в правой верхней клетке") {
движение_влево();
} else if (состояние == "робот в верхней правой клетке и стена в правой верхней клетке") {
движение_вверх();
движение_влево();
} else { // робот в верхней правой клетке и стена отсутствует
движение_влево();
}

Шестой шаг: исполнение программы.
В зависимости от начального положения робота и наличия стены, программа будет выполнять нужные команды, чтобы переместить робота в левый верхний угол квадрата.

Надеюсь, данное объяснение помогло вам понять решение данной задачи. Если у вас остались какие-либо вопросы, буду рад помочь вам!
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота