Пожалуйста напишите рекурсивную функцию, которая на вход принимает натуральное число n и вычисляет сумму всех цифр этого числа.
12345
15
Ответы
Відповідь:
Пояснення:
def sum_of_digits(n):
if n < 10: # базовый случай, когда число состоит из одной цифры
return n
else: # рекурсивный случай, когда число состоит из нескольких цифр
return n % 10 + sum_of_digits(n // 10)
В этой функции мы используем два случая: базовый случай, когда число состоит из одной цифры (или менее), и рекурсивный случай, когда число состоит из нескольких цифр. В рекурсивном случае мы находим сумму последней цифры числа (n % 10) и рекурсивно вызываем эту же функцию для оставшихся цифр числа (n // 10). Рекурсия продолжается до тех пор, пока мы не дойдем до базового случая, когда число состоит из одной цифры.
Вот пример использования
print(sum_of_digits(123)) # выводит 6, так как 1 + 2 + 3 = 6
print(sum_of_digits(987654321)) # выводит 45, так как 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 = 45