Рекурсия: вычисления суммы цифр введенного натурального числа - C (СИ)
Формулировка задачи:
Написать рекурсивную функцию вычисления суммы цифр натурального числа Число вводится пользователем
Решение задачи: «Рекурсия: вычисления суммы цифр введенного натурального числа»
textual
Листинг программы
int sum(int n){
if(n) return n%10+sum(n/10);
else return 0;
}
Объяснение кода листинга программы
В данном коде реализована функция sum, которая принимает на вход целое число n и рекурсивно вычисляет сумму цифр этого числа.
- Если
nбольше 0, то функция возвращает сумму последней цифрыn(получается путем взятия остатка от деленияnна 10) и рекурсивного вызова функцииsumс аргументомn/10(то естьnбез последней цифры). - Если
nравно 0, то функция возвращает 0. Таким образом, список шагов для данного кода будет выглядеть следующим образом: - Входное значение
nбольше 0.- Вычисляем последнюю цифру
nпутем взятия остатка от деленияnна 10. - Рекурсивно вызываем функцию
sumс аргументомn/10. - Возвращаем сумму последней цифры
nи результат рекурсивного вызова.
- Вычисляем последнюю цифру
- Входное значение
nравно 0.- Возвращаем 0.