Составить рекурсивную функцию 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: #include
  2. Определение функции DigitSum(int n) с типом возвращаемого значения int.
  3. Рекурсивный алгоритм для нахождения суммы цифр числа n.
  4. Если число n меньше 10, то возвращается само число n.
  5. Если число n больше или равно 10, то из него вычисляется последняя цифра (остаток от деления на 10), и к ней добавляется результат рекурсивного вызова функции DigitSum для числа n/10.
  6. В функции main() считывается число с клавиатуры, и вычисляется сумма его цифр с помощью функции DigitSum.
  7. Результат выводится на экран.
  8. После каждого вывода суммы цифр, пользователю предлагается ввести новое число.
  9. Цикл продолжается до тех пор, пока пользователю не надоест вводить числа.
  10. В конце программы возвращается 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы