1.四皇后

    xiaoxiao2021-03-25  94

    /* Note:Your choice is C IDE */ #include "stdio.h" int sum; int Q[4][4]; int PanDuan(int i,int j) { int s,t; for(s=i,t=0; t<4; t++)         if(Q[s][t]==1 )             return 0;//判断行                  for(t=j,s=0; s<4; s++)         if(Q[s][t]==1 && s!=i)             return 0;//判断列                  for(s=i,t=j; s>=0&&t>=0; s--,t--)         if(Q[s][t]==1)             return 0;//判断左上方          for(s=i,t=j; s<4&&t<4;s++,t++)         if(Q[s][t]==1)             return 0;//判断右下方                  for(s=i,t=j; s>=0&&t<4; s--,t++)         if(Q[s][t]==1)             return 0;//判断右上方     for(s=i,t=j; s<4&&t>=0; s++,t--)         if(Q[s][t]==1)             return 0;//判断左下方     return 1;//否则返回 } void dfs(int j) { int i ; if(j==4) { sum++; } else { for(i=0;i<4;i++) { if(PanDuan(i,j)==1) { Q[i][j]=1; dfs(j+1); Q[i][j]=0; } } } } void main() { dfs(0);    printf("%d",sum);  }
    转载请注明原文地址: https://ju.6miu.com/read-32553.html

    最新回复(0)