【课件】八皇后问题
来源:互联网 发布:淘宝卖视频 违规 编辑:程序博客网 时间:2024/05/22 00:09
八皇后问题:要在国际象棋棋盘中放八个皇后,使任意两个皇后都不能互相吃。(提示:皇后能吃同一行、同一列、同一对角线的任意棋子。)
#include<cstdio>#include<iostream>#include<cstdlib>#include<iomanip>using namespace std;bool d[100]={0},b[100]={0},c[100]={0};int sum=0,a[100];int print(){ sum++; cout<<"sum="<<sum<<endl; for(int i=1;i<=8;i++) cout<<setw(4)<<a[i]; cout<<endl;}int search(int i){ for(int j=1;j<=8;j++) if(!b[j]&&!c[i+j]&&!d[i-j+7])//由于C++不能操作负数组,因此考虑加7 { a[i]=j;//摆放皇后 b[j]=1;//宣布占领第j列 c[i+j]=1;//占领两个对角线 d[i-j+7]=1; if(i==8) print();//8个皇后都放置好,输出 else search(i+1);//继续递归放置下一个皇后 b[j]=0;//递归返回即为回溯一步,当前皇后退出 c[i+j]=0; d[i-j+7]=0; }}int main(){ search(1);//从第1个皇后开始放置 return 0;}
阅读全文
0 0
- 【课件】八皇后问题
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题(2)
- 八皇后问题(3)
- 八皇后问题
- 八皇后问题程序
- 浅谈八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题求解
- 八皇后问题
- 八皇后问题
- 开源中国在线正则表达式匹配测试
- Linux 内核锁机制之进程抢占&中断
- ListView深入浅出
- 网络编程复习(五):Socket编程中的IO模式详解
- 关于TP3.2在LNMP环境中文档上传和上传文档下载
- 【课件】八皇后问题
- 微信小程序数据缓存
- 高级C语言教程-关键字和运算符
- thread.interrupt
- 每天一个linux命令(4):mkdir命令
- javascript 点击删除按钮后弹出对话框
- 洛谷Oj-过河-动态规划+离散化
- Block 的理解和使用
- alsa音频采集和播放 (麦克风)