На прямой в начале координат сидит кузнечик. Из любой точки, где он находится, он может прыгнуть на 33 см или на 55 см в любую сторону. На какое наименьшее (ненулевое) расстояние он может удалиться от начала координат?
Пример. Если кузнечик может прыгать на 5 см или 3 см, то он может удалиться на 1 см. Например, так: прыгнуть два раза вправо на 5 см, а затем три раза влево на 3 см.

Вопрос школьника по предмету Информатика

На прямой в начале координат сидит кузнечик. Из любой точки, где он находится, он может прыгнуть на 33 см или на 55 см в любую сторону. На какое наименьшее (ненулевое) расстояние он может удалиться от начала координат?
Пример. Если кузнечик может прыгать на 5 см или 3 см, то он может удалиться на 1 см. Например, так: прыгнуть два раза вправо на 5 см, а затем три раза влево на 3 см.

Ответ учителя по предмету Информатика

# Код на ruby 2.2.3p173

def zadanie(jump1, jump2)

    min = jump1

    for i in 1..1000

        next if (i*jump1)%jump2 == 0 or (i*jump2)%jump1 == 0

        if min > (i*jump1)%jump2

            min = (i*jump1)%jump2

            p [min, «#{i} * #{jump1} — #{i*jump1/jump2} * #{jump2}»]

        end

        if min > (i*jump2)%jump1

            min = (i*jump2)%jump1

            p [min, «#{i} * #{jump2} — #{i*jump2/jump1} * #{jump1}»]

        end

    end

    return min

end

# # Примеры применения

p zadanie(33, 55)

Вывод

[22, «1 * 55 — 1 * 33»]

[11, «2 * 33 — 1 * 55»]

11

Т.е. минимум при 2 * 33 — 1 * 55 = 11

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей