eightqueue.txt
来自「eightqueue方面的冬冬。。 觉得在某一些方面说的还可以」· 文本 代码 · 共 54 行
TXT
54 行
#include<iostream>
#include<cmath>
using namespace std;
bool place(int index, int* pArray){
int i = 0;
while( i < index ){
//判断是否有重复列
//用绝对值来判断是否在对角线上
if(pArray[i] == pArray[index] || abs(pArray[i]-pArray[index]) == abs(i-index)){
return false ;
}
i++;
}
return true ;
}
void EightQueue(int iQueue, int* pArray){
int iFlag = 0;
pArray[iFlag] = -1 ;
while( iFlag > -1 ){
//移动皇后的位置
pArray[iFlag] = pArray[iFlag]+1;
while( pArray[iFlag] < iQueue && !place(iFlag, pArray) )
pArray[iFlag] = pArray[iFlag]+1 ;
if( pArray[iFlag] < iQueue ){
if( iFlag == iQueue-1 ){
for(int i = 0; i < iQueue; ++i)
cout << pArray[i] << " " ;
cout << endl;
}
else{
iFlag++;
pArray[iFlag] = 0 ;
}
else{
iFlag-- ;
}
}
}
int main(){
int iNum = 0;
cin >> iNum ;
int* pArrary = new int[iNum] ;
for(int i = 0; i < iNum; ++i)
pArray[i] = 0 ;
EightQueue(iNum, pArray) ;
return 0 ;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?