Составить рекурсивную функцию 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, что означает успешный конец работы программы.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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