Составить рекурсивную функцию int DigitSum(int n) целого типа, которая находит сумму цифр целого числа n, не используя операторы цикла - C (СИ)
Формулировка задачи:
Составить рекурсивную функцию int DigitSum(int n) целого типа, которая находит сумму цифр целого числа n, не используя операторы цикла.
Решение задачи: «Составить рекурсивную функцию int DigitSum(int n) целого типа, которая находит сумму цифр целого числа n, не используя операторы цикла»
textual
Листинг программы
#include <stdio.h> unsigned digitsum(unsigned n) { return ( n < 10 ) ? n : n % 10 + digitsum(n / 10); } int main(void) { unsigned n; while ( printf("Number: ") && scanf("%u", &n) == 1 ) printf("Sum of digits: %u\n", digitsum(n)); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек: #include
- Определение функции DigitSum(int n) с типом возвращаемого значения int.
- Рекурсивный алгоритм для нахождения суммы цифр числа n.
- Если число n меньше 10, то возвращается само число n.
- Если число n больше или равно 10, то из него вычисляется последняя цифра (остаток от деления на 10), и к ней добавляется результат рекурсивного вызова функции DigitSum для числа n/10.
- В функции main() считывается число с клавиатуры, и вычисляется сумма его цифр с помощью функции DigitSum.
- Результат выводится на экран.
- После каждого вывода суммы цифр, пользователю предлагается ввести новое число.
- Цикл продолжается до тех пор, пока пользователю не надоест вводить числа.
- В конце программы возвращается 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д