|
Вопрос # 3 615/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Мне нужна консультация по данной программе
 |
Вопрос задал: Виноградов Алексей/Prog_man (статус: Посетитель)
Вопрос отправлен: 5 января 2010, 00:27
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: vlsavkin
Здравствуйте, Виноградов Алексей/Prog_man!
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils, math;
var i,s:integer;
begin
readln(s);
s:=s*sign(s);
i:=0;
while s>0 do
begin
s:=s div 10;
i:=i+1;
end;
writeln(i);
readln;
end.
 |
Ответ отправил: vlsavkin (статус: 2-ой класс)
Время отправки: 5 января 2010, 11:00
|
Ответ #2. Отвечает эксперт: Паровоз
Здравствуйте, Виноградов Алексей/Prog_man!
Можно поступить проще. Число цифр положительного числа на 1 больше целой части его десятичного логарифма. Поэтому можно сделать так:
uses Math;
var
x:Integer;//число
n:Integer;//количество десятичных цифр числа x
begin
x:=StrToInt(Edit1.Text);
n:=Trunc(Log10(Abs(x)))+1;
end;
 |
Ответ отправил: Паровоз (статус: 10-ый класс)
Время отправки: 5 января 2010, 12:24
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 5 января 2010, 12:37; участников в обсуждении: 1.
|
vlsavkin (статус: 2-ой класс), 5 января 2010, 12:37 [#1]:
Единственное, что в обоих ответах неправильно обрабатываются случаи, когда исходное число 0, поэтому сразу:
readln(n);
writeln(length(inttostr(abs(n))));
)
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|