RT
解决方案 »
- 请问如何在Delphi中写程序创建8个存储过程到SQL SERVER ?
- 说说大家在有空的时候都看看什么杂志呢?
- delphi6.0的report 问题
- 请问注册表单元的savekey怎么用?如何取得注册表里所有键值?online wait
- TSpeedButton的Enable := False后不显示按钮图片了?
- 如何做浮动按钮
- 如何用程序实现将word文件转换成txt纯文本文件?
- 主程序调用这个线程代码,主窗口就死了,那儿出问题,大家帮忙看看
- 怎样调试控件
- 求高手帮忙修改段Delphi 调用的WMI代码
- 在Delphi中调用VC DLL的一个问题
- INSERT 语句与 COLUMN FOREIGN KEY 约束冲突。
var a:array [1..8] of integer;
b,c,d:array [-7..16] of integer;
t,i,j,k:integer;
procedure print;
begin
t:=t+1;
write(t,' ');
for k:=1 to 8 do write(a[k],' ');
writeln;
end;procedure try(i:integer);
var j:integer;
begin
for j:=1 to 8 do {每个皇后都有8种可能位置}
if (b[j]=0) and (c[i+j]=0) and (d[i-j]=0) then {判断位置是否冲突}
begin
a[i]:=j; {摆放皇后}
b[j]:=1; {宣布占领第J行}
c[i+j]:=1; {占领两个对角线}
d[i-j]:=1;
if i<8 then try(i+1) {8个皇后没有摆完,递归摆放下一皇后}
else print; {完成任务,打印结果}
b[j]:=0; {回溯}
c[i+j]:=0;
d[i-j]:=0;
end;
end;
begin
for k:=-7 to 16 do {数据初始化}
begin
b[k]:=0;
c[k]:=0;
d[k]:=0;
end;
try(1);{从第1个皇后开始放置}
end.