喝酒心跳加速会猝死吗:求一道编程问题的代码?

来源:百度文库 编辑:高校问答 时间:2024/05/12 12:35:46
八皇后问题的完整代码,要求程序运行时
输出八皇后的所有解的个数以及每一个皇后所在的位置。。。
用C或C++

using System;
class Queen{
const int SIZE = 8;//皇后数
public static void Main()
{
int[] Queen = new int [SIZE];//每行皇后的位置
int y,x,i,j,d,t=0;
y = 0;
Queen[0] = -1;
while( true )
{
for (x=Queen[y]+1; x<SIZE; x++)
{
for (i=0;i<y;i++)
{
j = Queen;
d = y-i;
//检查新皇后是否与以前的皇后能相互攻击
if ((j==x)||(j==x-d)||(j==x+d))
break;
}
if (i>=y)
break;//不攻击
}
if (x == SIZE) //没有合适的位置
{
if (0==y)
{
//回朔到了第一行
Console.WriteLine("Done");
break; //结束
}
//回朔
Queen[y]=-1;
y--;
}
else
{
Queen[y]=x;//确定皇后的位置
y++;//下一个皇后
if (y<SIZE)
Queen[y]=-1;
else
{
//所有的皇后都排完了,输出
Console.WriteLine("n" + ++t +:);
for(i=0;i<SIZE;i++)
{
for (j=0;j<SIZE;j++)
if(Queen == j)
Console.Write(Q);
else
Console.Write(.);
Console.WriteLine();
}
y = SIZE -1;//回朔
}
}
}
}
}

VB6 递归算法

Dim a(7), j As Integer, s As Integer
Sub dg(t)
Dim i As Integer
If t < 8 Then
For i = 0 To 7
For j = 0 To t - 1
If i = a(j) Or Abs(i - a(j)) = Abs(t - j) Then Exit For
Next
If j = t Then a(t) = i: dg (t + 1)
Next
Else
s = s + 1: List1.AddItem "第" & s & "种走法:"
For j = 0 To 7
List1.AddItem a(j) + 1 & String(a(j), "□") & "■" & String(7 - a(j), "□")
Next
End If
End Sub
Private Sub Command1_Click()
s = 0: dg (0)
End Sub

第92种走法

8□□□□□□□■
4□□□■□□□□
1■□□□□□□□
3□□■□□□□□
6□□□□□■□□
2□■□□□□□□
7□□□□□□■□
5□□□□■□□□