Описание задачи
Программа принимает на вход список со вложенными списками и находит сумму элементов всех вложенных списков при помощи рекурсии.
Решение задачи
- Инициализируем переменную списком, в котором содержатся вложенные списки.
- Передаем этот список в качестве аргумента в рекурсивную функцию для вычисления суммы всех элементов.
- В теле этой функции используем одновременно цикл и рекурсию, для того чтобы достать все элементы из вложенных списков и сложить их друг с другом.
- На выходе функции выдается сумма всех элементов всех вложенных списков. Причем вложенных списков может быть сколько угодно.
- Выводим этот результат на экран.
- Конец.
Исходный код
Ниже дан исходный код, который осуществляет нахождение суммы всех элементов списка со вложенными списками при помощи рекурсии. Результаты работы программы также даны ниже.
def sum1(lst): total = 0 for element in lst: if (type(element) == type([])): total = total + sum1(element) else: total = total + element return total print("Сумма элементов равна:", sum1([[1, 2], [3, 4]]))
Объяснение работы программы
- Инициализируем переменную списком, в котором содержатся вложенные списки.
- Передаем этот список в качестве аргумента в рекурсивную функцию
sum1()
для вычисления суммы всех элементов. - В теле этой функции создаем переменную
total
, в которой будем суммировать элементы списков. - Далее используем цикл
for
и рекурсию одновременно — для того, чтобы достать все элементы из вложенных списков и сложить их друг с другом. - На выходе функции выдается сумма всех элементов всех вложенных списков. Причем вложенных списков может быть сколько угодно.
- Выводим этот результат на экран.
Результаты работы программы
Пример 1: Сумма элементов равна: 10