#include <stdio.h>
#include <conio.h>
#include <math.h>
int n,k,a[20],num=0;
int attack(int k){
int flag=0;
int i=1;
while ((i<k)&&(a[k]!=a)&&(fabs(a[k]-a)!=(k-i))) i++;
if (i==k) flag=1;
return flag;
}
void place(int k)
{
//printf(" %d",k);
int i;
if (k==n+1){
num=num+1;
printf("num=%d:",num);
for (i=1;i<n+1;i++)
printf(" %d",a);
printf("\n");}
else {
for (i=1;i<n+1;i++){
a[k]=i;
if (attack(k)==1) place(k+1);
else a[k]=0;
}
}
}
main(){
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载