您的位置:首页 > 其它

hdu 2553 N皇后问题 (简单版_递归)

2012-05-24 11:47 429 查看
打表就过,数据很小,没什么说的。递归就好了!

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <string>
#include <algorithm>
#include <fstream>
using namespace std;

/*
const int N = 10;
int pos
;
int Queen_num;
int cnt;
bool check(int n) {
for(int i = 0; i < n; i++) {
if(pos[i] == pos
) return false;
if(abs(pos
- pos[i]) == n-i) return false;
}
return true;
}
void solve(int n) {
int i, j;
if(n == Queen_num) {
++cnt;
}
else {
for(i = 0; i < Queen_num; i++) {
pos
= i;
if(check(n)) {
solve(n+1);
}
}
}
}
*/
int main() {
/*
while(~scanf("%d", &Queen_num), Queen_num) {
cnt = 0;
solve(0);
printf("%d\n", cnt);
}
*/
int ans[11] = {0, 1, 0, 0, 2, 10, 4, 40, 92, 352, 724};
int Queen_num;
while(~scanf("%d", &Queen_num), Queen_num) {
printf("%d\n", ans[Queen_num]);
}
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: