Вопрос задан 30.03.2025 в 10:43. Предмет Информатика. Спрашивает Шиман Юра.

Длина Московской кольцевой автомобильной дороги —109 километров. Байкер Вася стартует с нулевого километра МКАД и едет со скоростью vкилометров в час. На какой отметке он остановится через t часов?

Программа получает на вход значения v и t. Если v>0, то Вася движется в положительном направлении по МКАД, если же значение v<0, то в отрицательном.

Программа должна вывести целое число от 0 до 108 — номер отметки, на которой остановится Вася. C++

Перейти к ответам

Ответы на вопрос

Отвечает Лопаткина Екатерина.

Рассмотрим задачу подробно и напишем программу на C++ для ее решения.

Анализ задачи:

  1. Длина МКАД составляет 109 километров, то есть мы рассматриваем движение по замкнутой окружности с отметками от 0 до 108 включительно.
  2. Скорость vv может быть как положительной (движение по часовой стрелке), так и отрицательной (движение против часовой стрелки).
  3. За время tt байкер проезжает расстояние d=vtd = v \cdot t.
  4. Чтобы найти отметку остановки на круге, нужно использовать операцию взятия остатка от деления длины пути на длину окружности. Это достигается с помощью операции модульного деления.

Алгоритм:

  1. Рассчитать полный путь, который проехал байкер: d=vtd = v \cdot t.
  2. Найти остаток от деления dd на длину МКАД (109109): r=d%109r = d \% 109.
  3. Учесть отрицательные значения rr, так как отрицательные остатки нужно преобразовать в положительные: r=(r+109)%109r = (r + 109) \% 109.
  4. Вывести результат.

Программа на C++:

cpp
#include

int main() { int v, t; std::cin >> v >> t;

// Рассчитываем общее расстояние int distance = v * t;

// Находим отметку с учетом длины МКАД (109 километров) int position = (distance % 109 + 109) % 109;

// Выводим результат std::cout << position << std::endl;

return 0; }


Объяснение работы программы:

  1. v и t вводятся с клавиатуры.
  2. Рассчитывается общее пройденное расстояние: vtv \cdot t.
  3. Используется операция модульного деления для нахождения позиции на кольце:
    • Остаток %109\% 109 позволяет "замкнуть" маршрут на длину окружности.
    • Добавление +109+ 109 гарантирует, что даже при отрицательных значениях мы получим положительный остаток.
  4. Результат выводится как целое число в диапазоне от 0 до 108.

Примеры работы программы:

  1. Ввод:

    60 2

    Вывод:

    11

    Байкер проехал 602=12060 \cdot 2 = 120 км. Остаток от деления 120%109=11120 \% 109 = 11.

  2. Ввод:

    diff
    -50 3

    Вывод:

    59

    Байкер проехал 503=150-50 \cdot 3 = -150 км. Остаток от деления 150%109=41-150 \% 109 = -41. Приводим к положительному значению: 41+109=68-41 + 109 = 68.

  3. Ввод:

    109 1

    Вывод:

    0

    Байкер проехал 109109 км — это ровно один круг.


Вывод:

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

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос