八皇后
来源:互联网 发布:sql查询分析器在哪里 编辑:程序博客网 时间:2024/05/18 09:14
#include <math.h>#include <stdio.h>#define MAX 8 // 宏定义皇后个数typedef struct // 位置结构体{ int x; // x 坐标 int y; // y 坐标}Point;int count = 0; // 统计方法的总数Point queen[MAX + 2]; // 皇后数组/** @function: 将第index个皇后放在(x, y)的位置 @param: x-->当前皇后所放的行 y-->当前皇后所放的列 index-->当前皇后的下标 @return: void*/void putQueen(int x, int y, int index){ int i; // 下标超出范围,返回 if (index > MAX) { return; } // 暂定当前皇后的位置 queen[index].x = x; queen[index].y = y; // 判断与前面放的皇后是否符合规则 for (i = 1; i<index; i++) { // 如果同行或同列有皇后,则返回 if (x == queen[i].x || y == queen[i].y) { return; } // 如果斜方向有皇后,则返回 if (abs(x - queen[i].x) == abs(y - queen[i].y)) { return; } } // 下标等于皇后个数,说明已经放完,输出当前情况 if (index == MAX) { printf("\n第 %d 种方法:\n", ++count); for (i = 1; i <= MAX; i++) { printf("Queen %d: (%d, %d)\n", i, queen[i].x, queen[i].y); } return; } // 已经暂定index个皇后的位置,讨论第index+1个皇后的位置 for (i = 1; i <= MAX; i++) { putQueen(x + 1, i, index + 1); // 讨论完一种情况后将index+1个皇后的的下标初始化 queen[index + 1].x = 0; queen[index + 1].y = 0; }}int main(){ count = 0; // 初始化放法为0 putQueen(0, 0, 0); // 从第0个皇后开始 return 0;}
0 0
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- 八皇后
- Android关于获取到本机ip和mac地址
- 线性表的基本操作(一)
- Redis3.X配置文件和sentinel配置文件详解
- hibernate配置数据库连接池的三种方法
- jQuery整理
- 八皇后
- Codefroces 486C Palindrome Transformation【贪心】好题
- hdu2554N对数的排列问题+数学推论
- Linux命令之"tail"
- Linux成长之路(三)——环境变量和搜索文件
- Mybatis批量添加数据
- linux下使用Makefile编译程序入门介绍
- Python的自带模块——HTMLParser的初步学习
- linux 内核中的开发人员 名单 CREDITS文件