Pascal количество цифр в числе

Ответить
c0zak
Сообщения: 17
Зарегистрирован: 04 мар 2009, 23:07
Контактная информация:

Здрасте ))) Мне тут задачку кинули-написать и реализовать на паскале алгоритм, вычисляющий количество цифр в целом числе для троичной, восьмеричной и десятичной системы счисления.

Код: Выделить всё

program NC;
var a, b :real;
begin
readln(a);
b:=0;
if a=0 then
writeln(b+1);
if a>0 then
 begin
  while a>=1 do
  begin
   a:=a/10;
   b:=b+1;
  end;
 end
else
begin
while a<=-1 do
  begin
   a:=a/10;
   b:=b+1;
  end;
end;
writeln(b:1:0);
readln;
end;
end.
Реализовал так, оно работает, но у меня чёткое ощущение что это бред ))) Вопрос: можно ли это сделать попроще?
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

ну это для 10-чных только. А Вам надо для целых или для дробных тоже?
c0zak
Сообщения: 17
Зарегистрирован: 04 мар 2009, 23:07
Контактная информация:

В целом числе. В принципе он должен выяснить количество цифр в числе и выдать в десятичной... На выходную систему счисления ограничений нет :) Только вопрос-а почему это только для десятичной? По идее алгоритм считает цифры...
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Это все замечательно сокращается
b:=1; a:=abs(a);
while a>base do
begin a:=a div base; inc(b); end;
writeln(b);
Где base - основание нужной вам системы счисления.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
c0zak
Сообщения: 17
Зарегистрирован: 04 мар 2009, 23:07
Контактная информация:

Спасибо :)
Ответить