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

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

Показать ответ
Ответ:
Killy2
Killy2
02.08.2020 12:17
# Код на ruby 2.2.3p173
def 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"
    end
end

# Примеры применения
p zadanie("11 12 2 5 7 6 10 2 8 3 2*109 4")
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота