Алгоритмы

Нахождение суммы всех цифр числа при помощи рекурсии

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

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

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

  1. Создадим пустой список, в который будем записывать цифры данного числа.
  2. Определим рекурсивную функцию, которая будет принимать в качестве аргумента число.
  3. Далее, принимаем от пользователя число и передаем его этой функции в качестве аргумента.
  4. В рекурсивной функции базовое условие определено как равенство аргумента нулю. В этом случае программа выводит сформированный список, состоящий из всех цифр числа.
  5. В противном случае в список добавляется остаток от деления аргумента на 10, а затем снова вызывается эта же функция, в которую в качестве аргумента передается результат целочисленного деления на 10.
  6. Затем находится сумма элементов списка при помощи встроенной функции Python, а результат выводится на экран. Вместо встроенной в Python функции также можно использовать код, который мы приводили в этом же разделе ранее.
  7. Также для сравнения можно посмотреть, как мы решали ранее эту же задачу при помощи итераций.

Исходный код

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

l = []
def sum_digits(b):
    if (b == 0):
        return l
    dig = b % 10
    l.append(dig)
    sum_digits(b // 10)
n = int(input("Введите число: "))
sum_digits(n)
print(sum(l))

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

  1. Создается переменная l, которая инициируется пустым списком.
  2. Определяется рекурсивная функция sum_digits(), принимающая в качестве аргумента число.
  3. В самой функции определяется базовое условие рекурсии. Оно состоит в равенстве аргумента функции 0. В этом случае функция возвращает сформированный рекурсивным образом список l.
  4. В противном случае в список добавляется остаток от деления аргумента на 10, а затем снова вызывается эта же функция, в которую в качестве аргумента передается результат целочисленного деления на 10.
  5. Далее мы вызываем функцию sum_digits(), а в качестве аргумента передаем введенное пользователем число n.
  6. Затем вычисленная сумма всех цифр числа выводится на экран.

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

Пример 1:
Введите число: 135
9
 
Пример 2:
Введите число: 546
15
Ilyaragalin

Recent Posts

Библиотека Pydantic: валидация данных на Python

Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…

3 дня ago

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

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

7 дней ago

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

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

2 недели ago

Что такое Werkzeug?

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

3 недели ago

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

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

4 недели ago

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

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

1 месяц ago