Немного упрощённый вариант Задачи 155. Конденсаторы, поэтому и решать будет простой рекурсивной функцией без всяких премудростей. Читаем условие:
Чисел всего 4, деления нет, поэтому можно написать функцию, которая будет возвращать список со всеми числами, которые можно получить с помощью заданных арифметических операций.
Так как функция будет рекурсивной, то назовём её rec. Тогда основное решение будет очень простым:
Функция rec будет разделять входящий список чисел на две части во всех возможных местах и рекурсивно вызываться для каждой из них. Значит условие выхода из рекурсивной функции будет простым:
В условии задачи явно не сказано, что можно использовать унарный минус. Но тест 3 говорит об этом, поэтому для списка из одного элемента возвращаем этот элемент и его с другим знаком.
Во всех остальных случаях нам понадобится список для ответа:
Проверим все варианты разбиения входного списка на две части и вызовемся рекурсивно:
После этого у нас есть два списка x и y, которые хранят все числа, которые можно получить в левой и правой частях списка соответственно. Чтобы получить ответ для исходного списка, надо к каждой паре чисел из этих списков применить все три допустимые операции:
Вот и всё решение задачи. Как и было сказано, теперь можете попробовать решить задачу Конденсаторы.
Предыдущий выпуск: Задача 647. Адаптивный поиск
Я очень хочу, чтобы мои советы были полезны вам, а для того, чтобы быстрее всех получать новые статьи можно подписаться на мой канал.