Подскажите, плиз. | BESK.SU - программирование без границ (c) 2025

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

s_S_s

Турист
Credits
0
Через какой оператор писать: Дано натуральное число n. Подсчитать сколько чисел в этом числе?
 

XPEHOMETP

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

s_S_s

Турист
Credits
0
Сдесь както задача поставленна, может в ней имеется в веду подсчитать сколько знаков?
 

s_S_s

Турист
Credits
0
Не понял. Это примерно то же, что спрашивать: "Есть слово, сколько в нем слов?" Если вопрос в том, сколько цифр в натуральном числе, а запись имеется в виду десятичная, то надо взять от этого числа десятичный логарифм и округлить до ближайшего большего целого числа (функцией ceiling, есть, к примеру, во многих диалектах BASIC или в Fortran).
Как с помощью ceiling? Результат я думаю должен быть: Если 5 то 1 одно число, если 13 то 2 два числа, если 211 то 3 три, и так далее.
 

nhkudav

Турист
Credits
0
проверь равно 0 или нет
в цикле дели на 10 пока не станет меньше 1 и попутно увеличивай счетчик на 1 в конце к счетчику прибавь один и смотри результат.

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

ZeVS

Специалист
Credits
10
:(

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

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

(n типа real или double).
 

ZeVS

Специалист
Credits
10
Товарисчи, а логарифм по основанию 10 взять?

На Delphi

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

На Pascal

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