# include <stdlib.h>
# include <stdio.h>
bool Place (int k,int * x)
{
int i;
for (i = 0; i < k; i++)
if ((abs(k - i) == abs(x[k] - x[i]))||x[i] == x[k])
return false;
return true;
}
void Backtrack(int n,int * x,int &sum)
{
int k = 0,i;
x[0] = 0;
while(k >= 0)
{
x[k] += 1;
while ((x[k] <= n) && !(Place(k,x)))
x[k] += 1;
if (x[k] <= n)
{
if (k == n-1)
{
sum++;
printf("第 %d 种情况::", sum);
for (i = 0; i < n; i++)
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余2页未读,立即下载