Рекурсия: подсчет суммы нечетных цифр числа - 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.
- Входной параметр функции — n, число, для которого необходимо подсчитать сумму нечетных цифр.
- Если n не равно нулю (n != 0), то функция возвращает сумму текущего нечетного бита числа n (n & 1) и рекурсивно вызывает себя для числа n/10.
- Если n равно нулю (n == 0), то функция возвращает 0.
- В функции main создается переменная argc, которая содержит количество аргументов командной строки.
- Затем в функцию main передается строка argv[1] в качестве аргумента.
- В функции main вызывается функция odd_digit_sum с аргументом 3219870.
- Результат работы функции odd_digit_sum выводится на экран с помощью функции printf.
- Функция main возвращает 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д