两元素的排列问题
求能打印出由n个1和m个0所有排列的算法或代码,那位达人能帮一下
2008-10-02 19:46
程序代码:
program create;
const maxn=20;
var m,n:byte;
s:array[1..maxn] of byte;
procedure print;
var i:integer;
begin
for i:=1 to m+n do
write(s[i]);
writeln;
end;
procedure try(m,n:byte;depth:byte);
begin
if m+n=0 then print
else begin
if m>=1 then begin
s[depth]:=0;
try(m-1,n,depth+1);
end; // if m>=1
if n>=1 then begin
s[depth]:=1;
try(m,n-1,depth+1);
end; // if n>=1
end;
end;
begin
readln(m,n);
try(m,n,1);
end.
2008-10-02 20:56
2008-10-02 21:06
2008-10-02 21:20
2008-10-02 21:22
2008-10-02 21:36

2008-10-02 22:19
2008-10-02 22:19
2008-10-02 22:21

2008-10-02 22:28