vart,i,j,k:integer;b,c,d:array[-7..16]ofinteger;a:array[1..8,1..8]ofboolean;procedureprint;begint:=t1;writeln(t);fori:=1to8doforj:=1to8doifa[i,j]thenwrite(i:3,\',\',j,\'\');fillchar(a,sizeof(a),false);writeln;end;proceduretry(i:integer);beginforj:=1to8doif(b[j]=0)and(c[i-j]=0)and(d[ij]=0)thenbegina[i,j]:=true;b[j]:=1;c[i-j]:=1;d[ij]:=1;ifi8thentry(i1)elseprint;b[j]:=0;c[i-j]:=0;d[ij]:=0;end;end;begint:=0;fillchar(a,sizeof(a),false);fork:=-7to16dobeginb[k]:=0;c[k]:=0;d[k]:=0;end;try(1);readln;end.也是用回溯,但我改用a作为布尔行标记数组。问题在于运行没有结果。求改错
|