#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; }