Как рекурсивной функции вычислить сумму номеров цифр?

Дано число, внутри рекурсивной функции нужно вычислить сумму номеров цифр. Наприме 452-> 1+2+3 или 65984->1+2+3+4+5. В коде ниже нашёл количество цифр в числе но никак не могу найти сумму номеров цифр.

Смог найти количество цифр но не могу найти сумму номеров цифр


Ответы (1 шт):

Автор решения: MBo

Рекурсивную функцию написать не так уже элементарно, если не применять формулу к количеству цифр (что рекурсией как раз посчитать легко) - я так понимаю, что фраза внутри рекурсивной функции требует, чтобы эта самая функция возвращала сразу нужный результат.

Рекурсия здесь требует знания, какая по очереди цифра обрабатывается - это параметр d. На Python (// - целочисленное деление):

def num(n, d = 1):
    if n > 9:
        return d + num(n // 10, d + 1)
    else:
        return d
→ Ссылка