Определить количество разрядов числа
Задача
Написать функцию, которая определяет количество разрядов введенного целого числа.
Пояснение к задаче и алгоритм решения
Чтобы программно посчитать количество разрядов числа, необходимо последовательно его делить нацело на 10, пока это число не станет равным нулю. При этом считать количество делений. Например, дано число 345. После первого деления останется 34, после второго - 3, после третьего - 0. Таким образом, мы видим, что количество делений равно количеству разрядов числа.
Для реализации данного алгоритма следует использовать цикл "пока" (while). Условием его выполнения является неравенство числа нулю. Хотя, если вводятся только положительные числа или перед этим отрицательное число превращают в положительное, в условии может быть "больше нуля".
Перед циклом вводится переменная-счетчик (например, i), которой присваивается значение 0 и которая при каждом делении заданного числа внутри цикла увеличивается на единицу. После завершения деления именно ее значением будет определяться количество разрядов числа.
Поскольку надо написать функцию, то скорее всего эта функция должна принимать заданное число, а возвращать количество разрядов.
Pascal
Исходный код на языке программирования Pascal
function digits (n:longint): byte;
var i: byte;
begin
i := 0;
while n > 0 do begin
n := n div 10;
i := i + 1
end;
digits := i
end;
begin
write ('Введите число: ');
readln (num);
if num<0 then num:=abs(num);
writeln ('Количество разрядов = ', digits(num));
end.
Пример(ы) выполнения программы на языке Pascal
Количество разрядов = 2
Язык Си
Исходный код на языке программирования C
int digits (int);
main() {
int num;
scanf("%d",&num);
printf("%d\n", digits(num));
}
int digits(int n) {
int i;
if (n < 0) n = -n;
while (n > 0) {
n = n/10;
i += 1;
}
return i;
}
Пример(ы) выполнения программы на языке C
4
Python
Исходный код на языке программирования Python
i = 0
while n > 0:
n = n//10
i += 1
return i
num = abs(int(input('Введите число: ')))
print('Количество разрядов:', digits(num))
Пример(ы) выполнения программы на языке Python
Количество разрядов: 8
КуМир
Исходный код на языке программирования КуМир
нач
цел num
ввод num
вывод разряды(num)
кон
алг цел разряды(цел n)
нач
цел i, m
m := n
i := 0
если m < 0 то m := -m всё
нц пока m > 0
m := div(m,10)
i := i+1
кц
знач := i
кон
Пример(ы) выполнения программы на языке КуМир
3
Basic-256
Исходный код на языке программирования Basic
gosub digits
end
digits:
if num < 0 then num = abs(num)
i = 0
while num > 0
num = num \ 10
i = i + 1
endwhile
print i
return
Пример(ы) выполнения программы на языке Basic
7