首页 > 学院 > 开发设计 > 正文

2013上机二 八皇后问题8*8 任意两个皇后不在同行同列对角

2019-11-06 08:01:06
字体:
来源:转载
供稿:网友

#include<iostream>using namespace std;int c[20], n = 8, cnt = 0;void PRint() {	for (int i = 0;i < n;i++)		cout << c[i]+1;	cout << endl;}void search(int r) {	if (r == n) {		cnt++;		print();		return;	}	for (int i = 0;i < n;i++) {		c[r] = i;		int ok = 1;		for (int j = 0;j < r;j++) {			if (c[r] == c[j] || r - j == c[r] - c[j] || r - j == c[j] - c[r]) {				ok = 0;				break;			}		}		if (ok) 			search(r + 1);	}}void main() {	c[0] = 0;	search(1);	cout << cnt << endl;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表