Пожалуйста напишите рекурсивную функцию, которая на вход принимает натуральное число n и вычисляет сумму всех цифр этого числа.
12345
15

Ответы

Ответ дал: MCFoger
1

Відповідь:

Пояснення:

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

Вас заинтересует