📄 n后.cpp
字号:
#include"stdio.h"
#include"math.h"
int n=8;
int sum=0;
int x[9]={0};
bool place (int k,int a)
{
for (int j=1;j<k;j++)
if ((abs(k-j)==abs(x[j]-a))||(x[j]==a)) return 0;
return 1;
}
void backtrack (int t,int x[])
{
int i,k;
if (t>n) {
sum++;
for(int j=1;j<=n;j++)
printf("%5d",x[j]);
printf("\n");
}
else
for (i=1;i<=n;i++) {
x[t]=i;
if (place(t,x[t])) backtrack(t+1,x);
}
}
main()
{
int i,j;
backtrack(1,x);
//for(j=1;j<9;j++)
//{for(i=1;i<9;i++)
// printf("%5d",x[i]);
printf("%5d\n",sum);
//}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -