8皇后问题
来源:互联网 发布:短期网络理财产品 编辑:程序博客网 时间:2024/06/05 04:50
8皇后问题太经典了,各种算法书解释回溯都用这个例子,下面是求解8皇后问题的代码:
#include <stdio.h>static int count;#define QUEEN_NUMBER 8#define NO_QUEEN -1#define TRUE 1#define FALSE 0#define ABS(x) ((x)>0?(x):(-(x)))int conflict(int *queen, int pos){int i;for (i = 0; i < pos; i++) {if ((queen[i] == queen[pos]) || ABS((queen[i] - queen[pos])) == ABS(i - pos)) return TRUE;}return FALSE;}void try_next(int *queen, int pos){if (pos == QUEEN_NUMBER) {count++;return;}int i;for (i = 0; i < QUEEN_NUMBER; i++) {queen[pos] = i;if (!conflict(queen, pos)){try_next(queen, pos + 1);}}}void foo(void){count = 0;int queen[QUEEN_NUMBER];int i;for (i = 0; i < QUEEN_NUMBER; i++) {queen[i] = NO_QUEEN;}try_next(queen, 0);printf("count = %d\n", count);}int main(int argc, const char *argv[]){foo();return 0;}
运行结果是8皇后问题共有92个解。
- 8皇后问题和N皇后问题
- 8皇后问题改进~
- 8皇后问题
- 8皇后问题求解
- 8皇后问题
- 8皇后问题
- 8皇后问题算法
- 8皇后问题
- 8皇后问题
- 8皇后问题
- 8皇后问题
- 8皇后问题
- 8皇后问题
- 8皇后问题
- 【算法】8皇后问题
- 8皇后问题续
- 8皇后问题算法
- 8皇后问题
- C#:USB设备枚举(八)创建基于WPF的USB设备浏览器
- Java设计模式(疯狂Java联盟版)
- 绝利一源,用师十倍
- 简单的nasm和cl互操作
- EC 相关资源
- 8皇后问题
- Android 显示图片
- spring 事务管理配置
- 初学html5
- Best Nagios plugin for SMARTd / smartmontools
- 《黄帝阴符经》义说(四)
- jquery小结
- 个人收藏备用小东西
- 好程序需要写两遍吗?