Алгоритмы

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

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

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

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

  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

7 наилучших библиотек визуализации Python на 2024 год

Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…

2 дня ago

Как преобразовать строку в байты в Python

В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…

2 недели ago

Что такое Werkzeug?

В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…

2 недели ago

Как прибавить дни, месяцы и годы к дате в Python

При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…

3 недели ago

Социальная аутентификация в приложении на Flask

В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…

1 месяц ago

Проверка типов в Python

В этой статье мы рассмотрим, что такое подсказки типов и чем они могут быть полезны.…

1 месяц ago