c基础编程:八皇后问题(递归算法)
2012-04-26 13:32
211 查看
#include <stdio.h> #include <cstdlib> int eight_array[8] = {0}; int count = 0; void printf_image(){ printf("\n 第 %d 种方案 \n",++count); for(int i = 0; i < 8; ++i) { int j; for(j = 0; j < eight_array[i]; ++j) { printf("%d ", 0); } printf("%d ", 1); for(int k = ++j; k < 8; ++k){ printf("%d ", 0); } printf("\n"); } printf("\n\n"); } bool enable_place(int row) { for(int k = 0; k < row; ++k) { if(eight_array[k] == eight_array[row] || (row - k)*(row -k) == (eight_array[row] - eight_array[k])*(eight_array[row] - eight_array[k])){ return false; } } return true; } void eight(int row) { if(row > 7){ printf_image(); }else { for(int i = 0; i < 8; ++i) { eight_array[row] = i; if(enable_place(row)){ eight(row+1); } } } } int main() { eight(0); system("pause"); return 0; }
相关文章推荐
- Linux下Socket编程一 socket 基础
- 基础网络编程,简单QQ
- Windows编程基础程序
- PTA基础编程 5-15 计算圆周率 (15分)
- 网络编程基础(1)-协议概要-IP、ICMP、UDP
- Linux下C基础编程----写在Blog之前的话
- Java基础知识强化之网络编程笔记23:Android网络通信之 Volley(Google开源网络通信库)
- C++实训 单元十一 MFC GDI+编程基础
- shell脚本编程基础总结
- 网络编程基础(socket,httpurlconnection)
- Cookie编程基础:限制与编写Cookie
- openMP编程探索1——编程基础
- php编程基础复习------环境的安装与配置
- Java---Socket编程基础理论
- Java基础编程之打印水仙花数
- Java泛型编程基础
- 【Linux Shell编程】Part1(基础) Linux命令行
- Java基础编程小练习
- Java Socket编程(二)Socket基础
- 编程基础知识——C/C++,Java,ObjC的回调方式探讨