Program David;
Var
Map:Array[1..20,1..20] of Boolean;
Procedure InitData;
Begin
FillChar(SizeOf(Map),0);
Total:=0;
End;
Procedure Print;
var i,j:Integer;
Begin
For i:=1 to 20 do
For j:= 1 to 20 do
If Map[i,j] Then write(i,'.',j,' ')
write('20.20');
writeln;
End;
Procedure MainWork(x,y:Integer);
Begin
If (x=20) and (y=20) Then Print
Else begin
Map[x,y+1]:=False;
MainWork(x,y+1);
Map[x,y+1]:=True;
Map[x+1,y]:=False;
MainWork(x+1,y);
Map[x+1,y]:=True
end;
End;
BEGIN
InitData;
MainWork;
END.
现打的,没检查,没思考,没编译,