Страница 1 из 1

Поиск чисел

Добавлено: 23 янв 2006, 02:31
pikass
Циклические алгоритмы.

Дано натуральное число N. Определить количество цифр в числовой записи данного числа,
которые имеют наименьшее значение. Пример: N=4546. Количество цифр с наименьшим значением равно двум ( две цифры 4)


Каков алгоритм работы, подскажите пожайлуста и как сравнить цифры в числе друг с другом.

Добавлено: 23 янв 2006, 09:24
LAngel
Работаем со строками.
Пробегаем по цифрам от 0 до 9 и проверяем присутствие в числе, если есть - считаем количество и выходим :)

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

function GetMinDigitsCount(Value: Integer): Integer;
var
  S: String;
  i, j: Integer;
begin
  Result := 0;
  S := IntToStr(Value);
  for i := 0 to 9 do
    if pos(IntToStr(i), S) > 0 then
    begin
      for j := 1 to Length(S) do
        if S[j] = IntToStr(i) then inc(Result);
      Break;
    end;
end;

Добавлено: 23 янв 2006, 11:58
Blood_Magic

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

function GetMinDigitsCount(Value: Integer): Integer; 
var 
  m, d, v: Integer; 
begin 
  Result := 0;
  m:=10;
  v:=Abs(Value);
  Repeat
    d:=v mod 10;
    If d=m then Inc(Result) else
      If d<m then
        begin
           Result:=1;
           m:=d;
        end;
    v:=v div 10;
  Until v=0;
end;