八皇后

#include<stdio.h> int map[8][8]={0}; int count=0; int safe(int x,int y) {  int i;  int j;  for(i=0;i<8;i++)  {   if(map[i][y]!=0)    return 0;  }  for(j=0;j<8;j++)  {   if(map[x][j]!=0)    return 0;  }  for(i=x,j=y;i>=0&&j>=0;i--,j--)  {   if(map[i][j]!=0)    return 0;  }  for(i=x,j=y;i>=0&&j<8;i--,j++)  {   if(map[i][j]!=0)    return 0;  }  return 1; }

void queen(int i) {  if(i==8)  {   count++;   return;  }  for(int j=0;j<8;j++)  {   if(safe(i,j))   {    map[i][j]=1;    queen(i+1);    map[i][j]=0;   }  } } int main() {  queen(0);  printf("%d",count);  return 0; }

原文地址:https://www.cnblogs.com/452035305qq/p/6138253.html