n皇后问题

Miki ·
更新时间:2024-09-21
· 970 次阅读

 完整程序: #include using namespace std; //n皇后问题回溯算法的实现 //(1) n皇后问题回溯算法的数据结构 #define NUM 20 int n; //棋盘的大小 int x[NUM]; //解向量 int sum; //当前已经找到的可行方案数 //(3) 检查当前皇后位置的约束函数 //形参t是回溯的深度 inline bool Place(int t) { int i; for(i=1;in) { sum++; //是全局变量 for(i=1;i<=n;i++) printf("%d",x[i]); printf("\n"); } else for(i=1;i<=n;i++) { x[t]=i; if(Place(t))Backtrack(t+1); } } int main(){ cout<<"请输入n皇后的规模:"<>n; cout<<n<<"x"<<n<<"格的棋盘上放置"<<n<<"个皇后并使其不能互相攻击的所有方案为:"<<endl; Backtrack(1); cout<<"着色方案总数为"<<endl; cout<<"Total="<<sum; return 0; }
作者:kt1776133839



n皇后

需要 登录 后方可回复, 如果你还没有账号请 注册新账号