Описание задачи
Программа принимает на вход число и при помощи рекурсии находит сумму всех цифр, из которых это число состоит.
Решение задачи
- Создадим пустой список, в который будем записывать цифры данного числа.
- Определим рекурсивную функцию, которая будет принимать в качестве аргумента число.
- Далее, принимаем от пользователя число и передаем его этой функции в качестве аргумента.
- В рекурсивной функции базовое условие определено как равенство аргумента нулю. В этом случае программа выводит сформированный список, состоящий из всех цифр числа.
- В противном случае в список добавляется остаток от деления аргумента на
10, а затем снова вызывается эта же функция, в которую в качестве аргумента передается результат целочисленного деления на10. - Затем находится сумма элементов списка при помощи встроенной функции Python, а результат выводится на экран. Вместо встроенной в Python функции также можно использовать код, который мы приводили в этом же разделе ранее.
- Также для сравнения можно посмотреть, как мы решали ранее эту же задачу при помощи итераций.
Исходный код
Ниже дан исходный код, который вычисляет сумму всех цифр данного числа с использованием рекурсии. Результаты работы программы также даны ниже.
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))
Объяснение работы программы
- Создается переменная
l, которая инициируется пустым списком. - Определяется рекурсивная функция
sum_digits(), принимающая в качестве аргумента число. - В самой функции определяется базовое условие рекурсии. Оно состоит в равенстве аргумента функции
0. В этом случае функция возвращает сформированный рекурсивным образом списокl. - В противном случае в список добавляется остаток от деления аргумента на
10, а затем снова вызывается эта же функция, в которую в качестве аргумента передается результат целочисленного деления на10. - Далее мы вызываем функцию
sum_digits(), а в качестве аргумента передаем введенное пользователем числоn. - Затем вычисленная сумма всех цифр числа выводится на экран.
Результаты работы программы
Пример 1: Введите число: 135 9 Пример 2: Введите число: 546 15

