Вычислить количество цифр заданного натурального числа n - Turbo Pascal
Формулировка задачи:
Написать программу с рекурсивной функцией, вычисляющей количество цифр заданного натурального числа n.
Решение задачи: «Вычислить количество цифр заданного натурального числа n»
textual
Листинг программы
function CountN(N:integer):integer; begin if (N div 10)=0 then CountN:=1 else begin CountN:=1+CountN(n div 10); end; end; VAr a:integer; begin readln(a); writeln(CountN(a)); readln; end.
Объяснение кода листинга программы
- В функции
CountN
переменнойN
присваивается значениеinteger
, которое представляет собой натуральное число, для которого необходимо вычислить количество цифр. - В условии
if (N div 10)=0 then
проверяется, делится ли числоN
на 10 без остатка. Если да, то выполняется блок кода внутриthen
, который представляет собой базовый случай: функция возвращает 1. - Если базовый случай не выполнился, то выполняется вложенный блок кода
begin ... end;
. В этом блоке переменнойn
присваивается значениеN div 10
, то есть результат деления числаN
на 10. Затем вызывается рекурсивный вызов функцииCountN
с аргументомn
, который представляет собой число, состоящее из одной цифры. - Рекурсивный вызов функции
CountN
увеличивает значение счетчикаCountN
на единицу. Это происходит до тех пор, пока числоn
не станет равным 0. - В основной программе переменной
a
присваивается значение, введенное пользователем. Затем вызывается функцияCountN
с аргументомa
, и результат выводится на экран. - После вывода результата функции
CountN
программа ожидает ввода следующего числа, после чего цикл повторяется.