Дана последовательность натуральных чисел {Aj}j=1...n (n меньше или равна 10000). Удалить из последовательности числа, содержащие хотя бы пару одинаковых цифр
Категория: Delphi/Pascal
2012-02-28 22:02:28
Среди оставшихся продублировать числа, содержащие цифру 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.
Поделиться: