java八皇后问题穷举算法_C++穷举法解决八皇后问题

#include #include#include

usingstd::setw;usingstd::cout;usingstd::endl;//非递归算法解决八皇后问题。求出可能的92种。//using std::abs;

intmain()

{static int queen[9];static int count=1;for (int A=1;A<=8;A++)

{for (int B=1;B<=8;B++)

{if (B==A)

{continue;

}

queen[2]=B;if ((abs(B-A))==1)

{continue;

}

queen[1]=A;for (int C=1;C<=8;C++)

{if ((C==B) || (C==A))

{continue;

}if ((abs(C-B)==1)||(abs(C-A)==2))

{continue;

}

queen[3]=C;for (int D=1;D<=8;D++)

{if ((D==C)||(D==B)||(D==A))

{continue;

}if ((abs(D-C)==1)||(abs(D-B)==2)||(abs(D-A)==3))

{continue;

}

queen[4]=D;for (int E=1;E<=8;E++)

{if ((E==D)||(E==C)||(E==B)||(E==A))

{continue;

}if ((abs(E-D)==1)||(abs(E-C)==2)||(abs(E-B)==3)||(abs(E-A)==4))

{continue;

}

queen[5]=E;for (int F=1;F<=8;F++)

{if ((F==E)||(F==D)||(F==C)||(F==B)||(F==A))

{continue;

}if ((abs(F-E)==1)||(abs(F-D)==2)||(abs(F-C)==3)||(abs(F-B)==4)||(abs(F-A)==5))

{continue;

}

queen[6]=F;for (int G=1;G<=8;G++)

{if ((G==F)||(G==E)||(G==D)||(G==C)||(G==B)||(G==A))

{continue;

}if ((abs(G-F)==1)||(abs(G-E)==2)||(abs(G-D)==3)||(abs(G-C)==4)||(abs(G-B)==5)||(abs(G-A)==6))

{continue;

}

queen[7]=G;for (int I=1;I<=8;I++)

{if ((I==G)||(I==F)||(I==E)||(I==D)||(I==C)||(I==B)||(I==A))

{continue;

}if ((abs(I-G)==1)||(abs(I-F)==2)||(abs(I-E)==3)||(abs(I-D)==4)||(abs(I-C)==5)||(abs(I-B)==6)||(abs(I-A)==7))

{continue;

}

queen[8]=I;

cout<

{

cout<

}

count++;

cout<

}

}

}

}

}

}

}

}return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值