标签:
3
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
解题思路:
跟n皇后解法很类似,写递归函数,找好退出条件。
代码:
#include <iostream> #include <cstdio> using namespace std; int n; int a[10]={0}; int yn[10]={0}; void backtrack(int location){ if(location==n+1){ for(int i=1;i<=n;i++){ printf(" %d",a[i]); } printf("\n"); }else{ for(int i=1;i<=n;i++){ if(!yn[i]){ a[location]=i; yn[i]=1; backtrack(location+1); yn[i]=0; } } } } int main() { scanf("%d",&n); backtrack(1); return 0; }
标签:
原文地址:http://www.cnblogs.com/TWS-YIFEI/p/5745656.html