Дана последовательность натуральных чисел {Aj}j=1...n (n меньше или равна 10000). Удалить из последовательности числа, содержащие хотя бы пару одинаковых цифр

Среди оставшихся продублировать числа, содержащие цифру 5.

code: #pascal
program PascalGuru;
uses crt;
label 1,2;
var A:array[1..10000] of integer;
    i,j,l,n,temp,ins:integer;
    s:string;
    b:boolean;
 
 
begin
write('N= '); readln (n);
 
writeln ('Vvedite elementy massiva A: ');
for j:=1 to n do begin
write ('A[',j,']='); readln (A[j]); end;
 
clrscr;
writeln ('Vot vvedennyi vami massiv A: ');
for j:=1 to n do write (A[j]:4,' ');
 
 
{Удалить из последовательности числа, содержащие хотя бы пару одинаковых цифр}
1:
for j:=1 to n do
    begin
    str(A[j],s);
    b:=false;
     for i:=1 to length(s) do
     for l:=1 to length(s) do
      if i<>l then
      if s[i]=s[l] then b:=true;
 
    if not b then continue;
 
    For i:=j+1 to n do A[i-1]:=A[i];
    dec(n);
    goto 1;
 
    end;
{---конец удаления---}
 
{продублировать числа, содержащие цифру 5}
ins:=1;
2:
for j:=ins to n do
    begin
    str(A[j],s);
    if pos('5',s)=0 then continue;
    temp:=A[j];
    For i:=n downto j+1 do A[i+1]:=A[i];
    A[j+1]:=temp;
    inc(n);
    ins:=j+2;
    goto 2;
    end;
{---конец дублирования---}
 
 
writeln;writeln;
writeln ('Vot obnovlennyi massiv A: ');
for j:=1 to n do write (A[j]:4,' ');
 
 
readln;
end.      
Поделиться:

Похожие статьи: