• На вход программе подаётся последовательность целых чи- сел, каждое из которых не превосходит по модулю 10000 . Числа за- писаны в одной строке через пробел. Признак конца ввода (в последо- вательность не входит) – число 2*109 . Требуется найти и вывести мак- симальное нечётное произведение двух элементов этой последова- тельности, которые располагаются друг от друга на расстоянии не ме- нее 4 (между ними должно быть как минимум три других элемента последовательности). Гарантируется, что в последовательности будет не менее пяти элементов. Если искомого нечётного произведения не существует, то вывести сообщение IMPOSSIBLE

Ответы 1

  • # Код на ruby 2.2.3p173def zadanie(s)    numbers = []    s.split(" ").each {|t|        break if t == "2*109"        numbers << t.to_i    }    max = numbers[0] * numbers[4]    for i in 0..numbers.size - 4        for j in i + 4..numbers.size - 1            p [i,j]            m = numbers[i] * numbers[j]            max = m if m % 2 == 1 and m > max        end    end    if max % 2 == 1        return max    else        return "IMPOSSIBLE"    endend# Примеры примененияp zadanie("11 12 2 5 7 6 10 2 8 3 2*109 4")
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years