解题思路:
注意事项:
参考代码:
#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 人评分
高精度加法 (C++代码)(大数加法)浏览:934 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:512 |
C语言训练-角谷猜想 (C语言代码)浏览:1705 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:624 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:604 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1195 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:556 |
水仙花 (C语言代码)浏览:1052 |
模拟计算器 (C++代码)浏览:806 |
1071题解浏览:493 |