Подпрограмма для вычисления количества цифр натурального числа (рекурсия) - C (СИ)
Формулировка задачи:
Дошли до подпрограмм. До этого как-то шарил, а в них вот плаваю. Помогите!
ТЗ: написать подпрограмму для вычисления количества цифр натурального числа.
Решение задачи: «Подпрограмма для вычисления количества цифр натурального числа (рекурсия)»
textual
Листинг программы
size_t cnt__(int n, size_t c) { if (n == 0) return c; return cnt__(n / 10, c + 1); } size_t cnt(int n) { return cnt__(n, 0); }
Объяснение кода листинга программы
В данном коде реализована функция cnt__(int n, size_t c)
, которая рекурсивно подсчитывает количество цифр в натуральном числе n
.
В случае, если n
равно 0, функция возвращает текущее значение счётчика c
.
Иначе, функция вызывает саму себя, передавая в качестве аргументов значение n/10
и увеличивая счётчик на единицу.
Код также содержит функцию cnt(int n)
, которая является оберткой для cnt__(int n, 0)
, и просто вызывает её.
- Подпрограмма
cnt__(int n, size_t c)
реализует рекурсивный подсчёт количества цифр в числеn
. - Если
n
равно 0, возвращается текущее значение счётчикаc
. - Иначе, происходит рекурсивный вызов подпрограммы
cnt__(int n, size_t c)
, с аргументамиn/10
иc+1
. - Функция
cnt(int n)
является оберткой дляcnt__(int n, 0)
, и просто вызывает её.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д