Дана последовательность К чисел. определить, сколько чисел этой последовательности содержит в своей записи все цифры больше некоторого числа N введенного с клавиатуры — Pascal(Паскаль)

uses crt;
type mnz=set of 0..9;{тип множетво цифр}
{процедура создания множества из числа}
procedure Mnoz(a:longint;var mz:mnz);
var b:longint;
begin
b:=abs(a);{берем модуль числа, может отрицательное}
mz:=[];{пустое множество}
while b>0 do{пока не ноль}
 begin
  mz:=mz+[b mod 10];{по 1 цифре с конца пишем в множество}
  b:=b div 10;{сокращаем число}
 end;
end;
{функция сравнения все ли цифры}
function Vse(n:longint;m:mnz):boolean;
var m1:mnz;
begin
Mnoz(n,m1);{множество из числа последовательности}
Vse:=m1=m;{сравниваем с множеством заданного, если =, то true}
end;
var k,a,i,n,s:longint;
    ma:mnz;
begin
clrscr;
write('Размер последовательности k=');
readln(k);
write('Число для сравнения n=');
readln(n);
Mnoz(n,ma);{множество цифр заданного числа}
writeln('Введите последовательность:');
s:=0;
for i:=1 to k do
 begin
  readln(a);
  if Vse(a,ma) then s:=s+1;{если все, то считаем}
 end;
write('Количество чисел, содержащих все цифры числа ',n,' = ',s);
readln
end.

Leave a Comment

+ 59 = 62