八皇后问题(英文:Eight queens),是由国际象棋棋手马克斯·贝瑟尔于1848年提出的问题

在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。

思路分析:

1.先把第一个皇后放在第一行第一列;

2.将第二个皇后放在第二行第一列,判断是否可行,若不可行, 跳过本次循环,放到第二列判断,依次类推,找到合适位置;

3.继续放三皇后,还是从第一列、第二列......直到第八个皇后也能放在一个不冲突的位置,这样就找到了一个正确的解;

4.依次循环

该方法为循环嵌套方法,思路简单容易实现,但程序效率太低有待改进。

int main()
{int count = 0;for (int q1 = 0; q1 < 8; q1++) {{for (int q2 = 0; q2 < 8; q2++) {if (q1 == q2 || q2 + 1 == q1 || q2 - 1 == q1)continue;for (int q3 = 0; q3 < 8; q3++) {if (q3 == q1 || q3 + 2 == q1 || q3 - 2 == q1 ||q3 == q2 || q3 + 1 == q2 || q3 - 1 == q2)continue;for (int q4 = 0; q4 < 8; q4++) {if (q4 == q1 || q4 + 3 == q1 || q4 - 3 == q1 ||q4 == q2 || q4 + 2 == q2 || q4 - 2 == q2 ||q4 == q3 || q4 + 1 == q3 || q4 - 1 == q3)continue;for (int q5 = 0; q5 < 8; q5++) {if (q5 == q1 || q5 + 4 == q1 || q5 - 4 == q1 ||q5 == q2 || q5 + 3 == q2 || q5 - 3 == q2 ||q5 == q3 || q5 + 2 == q3 || q5 - 2 == q3 ||q5 == q4 || q5 + 1 == q4 || q5 - 1 == q4)continue;for (int q6 = 0; q6 < 8; q6++) {if (q6 == q1 || q6 + 5 == q1 || q6 - 5 == q1 ||q6 == q2 || q6 + 4 == q2 || q6 - 4 == q2 ||q6 == q3 || q6 + 3 == q3 || q6 - 3 == q3 ||q6 == q4 || q6 + 2 == q4 || q6 - 2 == q4 ||q6 == q5 || q6 + 1 == q5 || q6 - 1 == q5)continue;for (int q7 = 0; q7 < 8; q7++) {if (q7 == q1 || q7 + 6 == q1 || q7 - 6 == q1 ||q7 == q2 || q7 + 5 == q2 || q7 - 5 == q2 ||q7 == q3 || q7 + 4 == q3 || q7 - 4 == q3 ||q7 == q4 || q7 + 3 == q4 || q7 - 3 == q4 ||q7 == q5 || q7 + 2 == q5 || q7 - 2 == q5 ||q7 == q6 || q7 + 1 == q6 || q7 - 1 == q6)continue;for (int q8 = 0; q8 < 8; q8++) {if (q8 == q1 || q8 + 7 == q1 || q8 - 7 == q1 ||q8 == q2 || q8 + 6 == q2 || q8 - 6 == q2 ||q8 == q3 || q8 + 5 == q3 || q8 - 5 == q3 ||q8 == q4 || q8 + 4 == q4 || q8 - 4 == q4 ||q8 == q5 || q8 + 3 == q5 || q8 - 3 == q5 ||q8 == q6 || q8 + 2 == q6 || q8 - 2 == q6 ||q8 == q7 || q8 + 1 == q7 || q8 - 1 == q7)continue;count++;printf("%d,%d,%d,%d,%d,%d,%d,%d\n", q1, q2, q3,q4,q5,q6,q7,q8);}}}}}}}}}printf("%d\n", count);return 0;}

C语言:最简单方法实现八皇后问题相关推荐

  1. 运用全排列的方法解决八皇后问题

    运用全排列的方法解决八皇后问题,可以分为两部分:全排列和八皇后,下面我将分开说明两个步骤. 首先说明八皇后: 第一步:就是把皇后按照0到8编号,然后对八个皇后进行全排列,一共有40320种排列方式. ...

  2. 用全排列的方法解决八皇后问题

    用百度搜索八皇后问题,几乎清一色都是用回溯,有兴趣的同学可参考:从全排列和八皇后问题谈回溯. 解决一个问题,我们应该充分利用已有的条件,化繁为简. $a=[0,1,2,3,4,5,6,7]; 可以看到 ...

  3. win10IE浏览器运行VBScript脚本语言的简单方法

    小编我也是个学习网页的初学者,但是由于现在的浏览器几乎都不支持vbscript脚本语言.特地为大家送来最简单的操作方法! 1:首先准备好你要运行的带有vbscript脚本语言的html文件. 2:打开 ...

  4. 八皇后非递归算法c语言,要求;编写实现八皇后问题的递归解法或非递归解法,对于任意给定的一? 爱问知识人...

    将下面程序改成运行后需要输入起始位置(第N行第M列)然后输出结果. #include #include enum Status {TRUE,FALSE}; //枚举状态 int matrix[ 将下面 ...

  5. C语言编程统计八皇后问题的解的个数,八皇后问题C语言解法

    偶遇八皇后问题,随即自己写了一个仅供参考 #include #include #define SIZE 8 void Circumsribe(int(*checkerboard)[SIZE], int ...

  6. Interview:算法岗位面试—上海某公司算法岗位(偏机器学习,互联网金融行业)技术面试考点之数据结构相关考察点—斐波那契数列、八皇后问题、两种LCS问题

    ML岗位面试:上海某公司算法岗位(偏机器学习,互联网金融行业)技术面试考点之数据结构相关考察点-斐波那契数列.八皇后问题.两种LCS问题 Interview:算法岗位面试-上海某公司算法岗位(偏机器学 ...

  7. 数据结构 - 递归 回溯算法(八皇后问题)

    游戏地址自己写完了可以根据结果去测试一下. 算法分析 八皇后问题算法思路分析 1)第一个皇后先放第一行第一列 2)第二个皇后放在第二行第一列.然后判断是否OK, 如果不OK,继续放在.第二列.第三列. ...

  8. Bailian2754 八皇后【回溯】

    2754:八皇后 总时间限制: 1000ms 内存限制: 65536kB 描述 会下国际象棋的人都很清楚:皇后可以在横.竖.斜线上不限步数地吃掉其他棋子.如何将8个皇后放在棋盘上(有8 * 8个方格) ...

  9. Bailian2698 八皇后【回溯】

    2698:八皇后问题 总时间限制: 10000ms 内存限制: 65536kB 描述 在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方. 输入 无输入. 输出 按给定顺序和格式输出所有 ...

最新文章

  1. 几种典型的软件自动化测试框架
  2. MLP is Best?
  3. left join 、right join 、inner join和 full join的区别
  4. 怎样查看cudnn版本_ubuntu16.04+Geforce GTX1060安装CUDA和cuDNN
  5. c语言编译器环境,C语言教程:C环境设置
  6. php 定时推送,php定时自动发送新浪微博
  7. HDU 2079 (母函数)
  8. java程序员书单--成长之路--职业发展,你读过几本
  9. CMD指令-连接局域网主机
  10. 车厢调度(信息学奥赛一本通 - T1357)
  11. 第八章JRT/0197-2020金融数据安全数据安全分级指南解读
  12. 方舟手游服务器自动重启,方舟适者生存连接服务器重启怎么办_连接服务器重启解决方法_快吧单机游戏...
  13. 阿里的敏捷组织和中台策略有何不同?
  14. ELK 部署手册(docker版本)
  15. CVPR2021目标检测方向论文
  16. pacemaker+corosync+pcs
  17. 黄鸭兄《傲慢是精英的耻辱,谦虚是精英的责任》摘录
  18. 如何通过RGB值判断颜色深浅
  19. finereport企业微信集成总结
  20. 浅谈Robots.txt文件给网站带来的好处

热门文章

  1. 普源数字示波器DHO1204技术参数
  2. 计算机科学技术与工程技术,科学技术与工程杂志
  3. android one x1 s3,ThinkPad X1 Carbon 2018 (6th Gen) 上手及設定 S3 待機模式
  4. 龙应台与安德烈:爱的教育
  5. jekins部署项目执行完脚本后不退出
  6. 百度大数据质量保障方案探索
  7. 吃个宵夜的时间,脑子里进点三相交流无刷电机驱动原理不过分吧
  8. 黑马旅游网项目总结与完善后端(非maven构建)
  9. 怎么发年终奖才能合理避税,工资总额固定的情况下。
  10. 毛概重点 2023-武海宝