解题思路:
注意事项:
参考代码:
#include<stdio.h> int N,k,sum=0; int flag1[200]={0}; int flag2[200]={0}; int flag3[20]={0}; int a[20]={0}; void DFS(int i) { if(i==N+1) { sum++; if(sum<4) { for(int k=1;k<=N;k++) printf("%d ",a[k]); printf("\n"); } } else{ for(int j=1;j<=N;j++) if(flag1[i+j]==0&&flag2[i-j+N]==0&&flag3[j]==0) { a[i]=j; flag1[i+j]=1;flag2[i-j+N]=1;flag3[j]=1; DFS(i+1); flag1[i+j]=0;flag2[i-j+N]=0;flag3[j]=0; } } } int main() { scanf("%d",&N); DFS(1); printf("%d\n",sum); }
0.0分
4 人评分
简单的a+b (C语言代码)浏览:565 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:613 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:549 |
蛇行矩阵 (C语言代码)浏览:792 |
C语言程序设计教程(第三版)课后习题6.6 (C++代码)浏览:649 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:701 |
水仙花 (C语言代码)浏览:1163 |
1014题解浏览:524 |
简单的a+b (C语言代码)浏览:457 |
演讲大赛评分 (C语言代码)浏览:1697 |