📄 xephau.cpp
字号:
// Thuat toan quay lui
// Bai toan xep n con hau tren ban co
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define fileout "XepHau.out"
#define N 8
#define SC (N-1)
#define SDC (2*N-1)
int soloigiai;
int Hau[N];
bool cot[SC];
bool cheonguoc[SDC],cheoxuoi[SDC];
FILE *fp;
void Init()
{
int i;
for(i=0;i<=SC;i++)
cot[i]=true;
for(i=0;i<=SDC;i++)
{
cheoxuoi[i]=true;
cheonguoc[i]=true;
}
soloigiai=0;
// Moi file
fp=fopen(fileout,"w");
}
void PrintResult()
{
int i;
fprintf(fp,"\n+ Loi giai thu%3d",soloigiai);
for(i=0;i<N;i++)
fprintf(fp,"%3d",Hau[i]);
}
void Try(int i)
{
int j;
for(j=0;j<N;j++)
{
if(cot[j] && cheoxuoi[i+j] && cheonguoc[i-j+SC])
{
Hau[i]=j;
cot[j]=false;
cheoxuoi[i+j]=false;
cheonguoc[i-j+SC]=false;
if(i==N-1)
{
soloigiai++;
PrintResult();
}
else
Try(i+1);
// Phuc hoi
cot[j]=true;
cheoxuoi[i+j]=true;
cheonguoc[i-j+SC]=true;
}
}
}
int main()
{
Init();
Try(0);
fclose(fp);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -