您的位置:首页 > 产品设计 > UI/UE

poj 3239 Solution to the n Queens Puzzle n皇后问题的构造解法

2015-12-04 17:26 543 查看
#include <iostream>
using namespace std;
int n;

int main()
{
while(scanf("%d",&n)==1&&n){
if(n%6!=2&&n%6!=3){
for(int i=2;i<=n;i+=2)
printf("%d ",i);
for(int i=1;i<=n;i+=2)
printf("%d ",i);
puts("");
}else{
int k=n/2;
if(k%2==0&&n%2==0){
for(int i=k;i<=n;i+=2)
printf("%d ",i);
for(int i=2;i<=k-2;i+=2)
printf("%d ",i);
for(int i=k+3;i<=n-1;i+=2)
printf("%d ",i);
for(int i=1;i<=k+1;i+=2)
printf("%d ",i);
}
if(k%2==0&&n%2==1){
for(int i=k;i<=n-1;i+=2)
printf("%d ",i);
for(int i=2;i<=k-2;i+=2)
printf("%d ",i);
for(int i=k+3;i<=n-2;i+=2)
printf("%d ",i);
for(int i=1;i<=k+1;i+=2)
printf("%d ",i);
printf("%d",n);
}
if(k%2==1&&n%2==0){
for(int i=k;i<=n-1;i+=2)
printf("%d ",i);
for(int i=1;i<=k-2;i+=2)
printf("%d ",i);
for(int i=k+3;i<=n;i+=2)
printf("%d ",i);
for(int i=2;i<=k+1;i+=2)
printf("%d ",i);
}
if(k%2==1&&n%2==1){
for(int i=k;i<=n-2;i+=2)
printf("%d ",i);
for(int i=1;i<=k-2;i+=2)
printf("%d ",i);
for(int i=k+3;i<=n-1;i+=2)
printf("%d ",i);
for(int i=2;i<=k+1;i+=2)
printf("%d ",i);
printf("%d",n);
}
puts("");
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  poj 算法