Наши преимущества

Подскажите, плиз.

s_S_s

Турист
Credits
0
Через какой оператор писать: Дано натуральное число n. Подсчитать сколько чисел в этом числе?
 
Не понял. Это примерно то же, что спрашивать: "Есть слово, сколько в нем слов?" Если вопрос в том, сколько цифр в натуральном числе, а запись имеется в виду десятичная, то надо взять от этого числа десятичный логарифм и округлить до ближайшего большего целого числа (функцией ceiling, есть, к примеру, во многих диалектах BASIC или в Fortran).
 
Сдесь както задача поставленна, может в ней имеется в веду подсчитать сколько знаков?
 
Не понял. Это примерно то же, что спрашивать: "Есть слово, сколько в нем слов?" Если вопрос в том, сколько цифр в натуральном числе, а запись имеется в виду десятичная, то надо взять от этого числа десятичный логарифм и округлить до ближайшего большего целого числа (функцией ceiling, есть, к примеру, во многих диалектах BASIC или в Fortran).

Как с помощью ceiling? Результат я думаю должен быть: Если 5 то 1 одно число, если 13 то 2 два числа, если 211 то 3 три, и так далее.
 
проверь равно 0 или нет
в цикле дели на 10 пока не станет меньше 1 и попутно увеличивай счетчик на 1 в конце к счетчику прибавь один и смотри результат.

Другого способа не вижу.
 
:(

Надо проверять не на равенство нулю.

i := 0;
while abs(n) > 1 do
begin
inc(i);
n := n/10;
end;

(n типа real или double).
 
Товарисчи, а логарифм по основанию 10 взять?

На Delphi

i := floor(log10(n)) + 1;

На Pascal

i := int(ln(n)/ln(10)) + 1;
 
Верх