Даны два натуральных числа (числа вводим с клавы). найти цифры каждого числа, которые встречаются не по одному разу в записи чисел. и ещё одна: даны две строки (строки вводим с клавы). найти символы каждого числа, которые встречаются не по одному разу в записи этих строк. язык - паскаль, , !

Yanchic02 Yanchic02    1   17.09.2019 07:30    0

Ответы
nyusha1990 nyusha1990  07.10.2020 21:19
Type
  Digits=array[0..9] of byte;

procedure RD(n:integer; var ad:Digits; var f:boolean);
{ заполняет массив количеством повторений цифр числа n
  f=True, если хоть одна цифра повторяется }
var
  i,d:byte;
begin
  for i:=0 to 9 do ad[i]:=0;
  f:=False;
  while n>0 do begin
    d:=n mod 10;
    ad[d]:=ad[d]+1;
    if ad[d]>1 then f:=True;
    n:=n div 10
    end;
end;

var
  i,j,n,k:integer;
  a:Digits;
  f:boolean;
 
begin
  for i:=1 to 2 do begin
    Write('n = '); Read(n);
    n:=Abs(n); { против ввода отрицательных }
    RD(n,a,f);
    if f then begin
      Write('Встречаются больше одного раза цифры ');
      for j:=0 to 9 do
        if a[j]>1 then Write(j,' ');
      Writeln
      end
    else Writeln('Все цифры в числе уникальны')
    end
end.

Пример
n = 153632
Встречаются больше одного раза цифры 3
n = 1030041
Встречаются больше одного раза цифры 0 1

var
  s,sr:string;
  c:char;
  i,j,n,p:byte;
   
begin
  for i:=1 to 2 do begin
    Write('Введите строку: '); Readln(s);
    n:=Length(s);
    sr:='';
    for j:=1 to n do begin
      c:=s[j];
      if Pos(c,Copy(s,j+1,n-j))>0 then sr:=sr+c+' ';
      end;
    if Length(sr)>0 then Writeln('Встречаются больше одного раза символы ',sr)
    else Writeln('Все символы в строке уникальны')
    end
end.

Пример
Введите строку: информатика
Встречаются больше одного раза символы и а
Введите строку: проблема
Все символы в строке уникальны
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика