Алгоритм
В решении используются два алгоритма.
Первый рекурсивно вызывает второй (get_digit_sum_recursive). Рекурсивный алгоритм вычисляет сумму заданных цифр a, b: a + b.
Фактически он неоднократно удаляет последнюю цифру числа, используя целочисленное деление (n//10),
и добавляет ее к сумме до тех пор, пока не останется больше цифр.
Рекурсивный алгоритм выполняет следующие шаги:
- Изначально есть положительное целое число number.
- Если число number меньше 10, то возвращается number.
- В противном случае вычисляется сумма последней цифры в number и суммы остальных цифр в number,
для чего берется остаток и частное от целочисленного деления number на 10 соответственно.
- Затем рекурсивно выполняются шаги, перечисленные выше.
- И возвращается результат рекурсивного вызова.
- Первый алгоритм выполняет следующие шаги.
- Принимаются два положительных целых числа num1 и num2.
- Вычисляется сумма цифр в num1 с использованием get_digit_sum_ recursive и
сохраняется в переменной digit_sum_num1.
- Вычисляется сумма цифр в num2 с использованием get_digit_sum_ recursive и
сохраняется в переменной digit_sum_num2.
- Вычисляется сумма цифр в num1 + num2 с использованием функции get_digit_sum_recursive и
сохраняется в переменной digit_sum_num1_ num2.
- Вычисляется общее количество переносов как (digit_sum_num1 + digit_sum_num2 – digit_sum_num1_num2)//9.
- И полученное общее количество переносов возвращается.