Показать сообщение отдельно

  #6  
Старый 14.02.2009, 00:13
lll6
Познающий
Регистрация: 01.03.2008
Сообщений: 99
Провел на форуме:
613745

Репутация: 51
По умолчанию

Код:
program Sequences;
      type Sequence=array [byte] of byte;
      var M,N,i:byte;
	  X:Sequence;
	  Yes:boolean;
      procedure Next(var X:Sequence;var Yes:boolean);
	var i:byte;
      begin
	i:=N;
	{поиск i}
	while (i>0)and(X[i]=M) do begin X[i]:=1;dec(i) end;
	if i>0 then begin inc(X[i]);Yes:=true end
	else Yes:=false
      end;
    begin
      write('M,N=');readln(M,N);
      for i:=1 to N do X[i]:=1;
      repeat
	for i:=1 to N do write(X[i]);writeln;
	Next(X,Yes)
      until not Yes
    end.
N - кол-во элементов (8 в твоём случае)
M - верхняя граница (40 в твоём случае)
А вообще учи комбинаторику, чисто комбинаторная задача.
 
Ответить с цитированием