用深度优先搜索做比较方便,以下是pascal语言代码,看懂了很容易移植到VB里。
程序代码:
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.
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-2 19:46 

