Рекурсия: подсчет суммы нечетных цифр числа - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Написать рекурсивную функцию высчитывающую сумму нечетных цифр числа на Си. Помогите пожалуйста!

Решение задачи: «Рекурсия: подсчет суммы нечетных цифр числа»

textual
Листинг программы
#include "stdio.h"
 
int odd_digit_sum(int n){
    return n ? (n & 1 ? n % 10 : 0) + odd_digit_sum(n / 10) : 0;
}
 
int main(int argc, const char * argv[]) {
  printf("%d", odd_digit_sum(3219870));
  return 0;
}

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

В данном коде на языке C реализована функция odd_digit_sum, которая рекурсивно подсчитывает сумму нечетных цифр числа n.

  1. Входной параметр функции — n, число, для которого необходимо подсчитать сумму нечетных цифр.
  2. Если n не равно нулю (n != 0), то функция возвращает сумму текущего нечетного бита числа n (n & 1) и рекурсивно вызывает себя для числа n/10.
  3. Если n равно нулю (n == 0), то функция возвращает 0.
  4. В функции main создается переменная argc, которая содержит количество аргументов командной строки.
  5. Затем в функцию main передается строка argv[1] в качестве аргумента.
  6. В функции main вызывается функция odd_digit_sum с аргументом 3219870.
  7. Результат работы функции odd_digit_sum выводится на экран с помощью функции printf.
  8. Функция main возвращает 0, что означает успешный конец работы программы.

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


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

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

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