C语言中的8皇后问题。
来源:互联网 发布:sha256算法详细 编辑:程序博客网 时间:2024/05/14 21:49
8皇后问题
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:
输出8皇后问题所有结果。
输入:
没有输入。
输出:
每个结果第一行是No n:的形式,n表示输出的是第几个结果;下面8行,每行8个字符,‘A’表示皇后,‘.’表示空格。不同的结果中,先输出第一个皇后位置靠前的结果;第一个皇后位置相同,先输出第二个皇后位置靠前的结果;依次类推。
#include<stdio.h>static int a[8]={0};static int cnt=0;int judge(int m,int c)//判断每种情况是否符合8皇后问题要求{ for(int i=0;i<m;i++) { if(a[i]==c) return 0; if((c-a[i])==(m-i)||(c-a[i])==(i-m)) return 0; } return 1;}int print(int a[8],int cnt)//输出函数{ int i,j; printf("No %d:\n",cnt); for(i=0;i<=7;i++) { for(j=0;j<=7;j++) { if(j==a[i])printf("A"); if(j!=a[i])printf("."); if(j==7)printf("\n"); } }}int search(int m)//回溯算法递归调用函数,枚举所有可能。{ int i; if(judge(m-1,a[m-1])==0) return 1;//调用judge函数,判断刚刚加入的皇后是否符合要求。符合则继续讨论下一行或者输出,不符合则返回讨论上一行的下一种情况。 if(m==8) { cnt++; print(a,cnt);//前8行符合要求则输出 } if(m<=7) { for(i=0;i<8;i++) { a[m]=i; search(m+1); } }} int main(){ search(0);}
阅读全文
0 0
- C语言中的8皇后问题。
- C语言 8皇后问题
- 8皇后问题(c 语言描述)
- C语言 八皇后问题
- C语言-八皇后问题
- c语言八皇后问题
- C语言-数据结构-递归求解实例-8皇后问题
- C语言 8皇后解法
- [算法]经典算法8皇后(N皇后)问题的解法,C语言实现
- C语言编程 N皇后问题求解
- 递归求解N皇后问题(c语言)
- 关于C语言的N皇后问题
- C语言实现N皇后问题源代码
- 八皇后问题的C语言实现
- N 皇后问题C语言实现
- 八皇后问题-回溯法-c语言
- N皇后问题c语言解法
- C语言实现各大皇后问题
- easyUI+springmvc项目搭建
- 集成学习之bagging、boosting及AdaBoost的实现
- IntelliJ Idea 2017 免费激活方法
- ofbiz实战——实验室预约系统共用配置文件
- 关于DB2数据库报java.sql.SQLException: No suitable driver found异常的原因及解决方法
- C语言中的8皇后问题。
- angularjs页面加载时闪屏问题
- mysql函数
- Golang笔记
- leetcode: 6. ZigZag Conversion
- 何晖光:“深度学习类脑吗?”--- 基于视觉信息编解码的深度学习类脑机制研究 | VALSE2017之十四
- HTML条件注释判断浏览器版本<!--[if lt IE 9]>
- 宝贝不开直通车了会降权吗?如何提升产品权重
- 考试相关题目