Алгоритмы

Вычисление суммы элементов списка при помощи рекурсии

Описание задачи

Программа принимает на вход список и вычисляет сумму его элементов, используя рекурсию.

Решение задачи

  1. Определяем рекурсивную функцию, которая в качестве аргументов принимает список и его длину.
  2. Принимаем длину цикла и записываем ее в отдельную переменную.
  3. Создаем новую переменную и инициируем ее пустым списком.
  4. Для добавления элементов в список используем цикл.
  5. Передаем сформированный список и его длину в рекурсивную функцию в качестве аргументов.
  6. В качестве базы рекурсии принимается условие равенства длины списка 0 . Если длина списка равна 0, работа функции завершается и она возвращает в качестве результата 0.
  7. В противном случае возвращается сумма последнего элемента списка вместе с рекурсивным вызовом функции, где длина массива уменьшена на 1.
  8. Значение рекурсивной функции записывается в отдельную переменную, значение которой потом выводится на экран.
  9. Конец.

Исходный код

Ниже дан исходный код, который вычисляет сумму элементов списка при помощи рекурсии. Результаты работы программы также даны ниже.

def sum_arr(arr, size):
    if (size == 0):
        return 0
    else:
        return arr[size - 1] + sum_arr(arr, size - 1)
n = int(input("Введите длину списка:"))
a = []
for i in range(0, n):
    element = int(input("Введите элемент списка:"))
    a.append(element)
print("Весь список:")
print(a)
print("Сумма элементов списка равна:")
b = sum_arr(a, n)
print(b)

Объяснение работы программы

  1. Пользователь вводит число элементов списка, которое сохраняется в отдельной переменной n.
  2. Далее пользователь n раз вводит элементы массива, длину которого мы будем вычислять.
  3. Введенные данные добавляются в заранее созданный список a при помощи функции append(). Для наглядности окончательный список выводится на экран.
  4. Затем введенный список и его длина передаются в качестве аргументов в рекурсивную функцию sum_arr(), код которой мы написали ранее.
  5. Как только длина списка уменьшается до 0, работа функции прекращается и она перестает вызывать сама себя.
  6. Пока длина списка не равна нулю, функция возвращает сумму последнего элемента списка и вызов самой себя с длиной списка, уменьшенной на 1.
  7. Результат работы функции записывается в переменную b, которая затем выводится на экран.

Результаты работы программы

Пример 1:
Введите длину списка:3
Введите элемент списка:3
Введите элемент списка:56
Введите элемент списка:7
Весь список:
[3, 56, 7]
Сумма элементов списка равна:
66
 
Пример 2:
Введите длину списка:5
Введите элемент списка:23
Введите элемент списка:45
Введите элемент списка:62
Введите элемент списка:10
Введите элемент списка:56
Весь список:
[23, 45, 62, 10, 56]
Сумма элементов списка равна:
196
Ilyaragalin

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago