Дан массив array[1..N] of byte чисел, каждое из которых является 1 числом кода. N — количество чисел в коде. Нужно перебрать все возможные варианты — Pascal(Паскаль)

Например при N=4 возможны варианты 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 0014 ... 9999
uses crt;
type mas=array[1..10] of byte;
procedure Vyvod(var f:text;var m:mas;n:byte);
var i:byte;
begin
for i:=1 to n do
write(f,m[i],' ');
writeln(f,'');
end;
var m:mas;
    n,i:byte;
    f:text;
function inc (k: integer):boolean;
begin
m[k]:= m[k]+1;
if m[k]=10 then
 begin
  if (k=1) then
   begin
    inc:= false;
    exit;
   end
  else
   begin
    m[k]:=0;
    inc:=inc(k-1);
   end;
 end;
end;
begin
clrscr;
assign(f,'res.txt');
rewrite(f);
repeat
write('Количество цифр в коде от 1 до 10 n=');
readln(n);
until n in [1..10];
for i:=1 to n do m[i]:=0;
vyvod(f,m,n);
 
while inc(n) do
Vyvod(f,m,n);
write('Результат записан в файл');
close(f);
readln
end.

Leave a Comment

2 + 7 =