Подсчитать сколько чисел натурального ряда от 1 до 1000 имеют две одинаковые цифры — Pascal(Паскаль)

uses crt;
function Cifr_2(n:word):boolean;{функция определят 2 одинаковые цифры}
var m:set of byte;
    k,p,t:byte;
begin
m:=[];{множество разных цифр}
p:=0;{количество разных}
t:=0;{общее количество}
while n>0 do
 begin
  k:=n mod 10;
  t:=t+1;{считаем все цифры}
  if not (k in m) then{если нет еще в множестве, разная}
   begin
     m:=m+[k];{включаем в множествл и считаем}
     p:=p+1;
   end;
  n:=n div 10;
 end;
if t-p=1 then Cifr_2:=true{если разных на 1 меньше чем всего, то 2 одинаковые}
else Cifr_2:=false;
end;
var j,k:word;
begin
clrscr;
k:=0;
for j:=11 to 999 do
if Cifr_2(j) then k:=k+1;
write('k=',k);
readln
end.

Leave a Comment

+ 89 = 96