PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018 Внимание! Если программа не работает, обновите версию!
function Duplicates(a,b:int64):array of char; begin var ha:=a.ToString.ToHashSet; ha.IntersectWith(b.ToString.ToHashSet); Result:=ha.ToArray end;
begin var m,n:int64; Write('Введите через пробел два натуральных числа: '); Read(m,n); var r:=Duplicates(m,n); if r.Length=0 then Writeln('Нет цифр, встречающихся в обоих числах') else r.Println(',') end.
Примеры Введите через пробел два натуральных числа: 12345 6789067 Нет цифр, встречающихся в обоих числах
Введите через пробел два натуральных числа: 1342103 6748644 4
Реализация без множеств
procedure nToArray(n:int64; a:array of boolean); begin for var i:=0 to 9 do a[i]:=False; if n=0 then a[0]:=True else while n>0 do begin a[n mod 10]:=True; n:=n div 10 end end;
function Duplicates(a,b:int64):array of boolean; begin var ma:=new boolean[10]; var mb:=new boolean[10]; nToArray(a,ma); nToArray(b,mb); Result:=new boolean[10]; for var i:=0 to 9 do Result[i]:=ma[i] and mb[i] end;
begin var m,n:int64; Write('Введите через пробел два натуральных числа: '); Read(m,n); var r:=Duplicates(m,n); Write('Совпадающие цифры: '); for var i:=0 to 9 do if r[i] then Write(i,' '); Writeln end.
Пример Введите через пробел два натуральных числа: 12352423 98789635233 Совпадающие цифры: 2 3 5
Program n_5; var a, b, c: real; procedure n_1; begin if ((a<b) and (a>c)) or ((a<c) and (a>b)) then write (a) else if ((b<a) and (b>c)) or ((b<c) and (b>a)) then write (b) else if ((c<a) and (c<b)) or ((c<b) and (c>a)) then write (c); end; begin writeln ('Введите три трёхзначных числа'); readln (a); readln (b); readln (c); if ((a >= 100) and (a <= 999) and (a <> b) and (a <> c)) and ((b >= 100) and (b <= 999) and (b <> a) and (b <> c)) and ((c >= 100) and (c <= 999) and (c <> a) and (c <> b)) then n_1 else write ('ERROR'); end.
var a:integer;
begin
for a:=1 to 10000 do
begin
if (a mod 10 =8)and(a mod 3 =0) then writeln(a);
end;
end.