Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
136490 | | N皇后问题 | C++ | 解答错误 | 0 | 1000 MS | 252 KB | 664 | 2024-03-09 09:53:51 |
#include <iostream> #include <stdlib.h> using namespace std; int column[100]; int queenNum=0; int count =0; int isAble(int row,int col){ for(int i=0;i<row;i++){ if(column[i]==col||abs(col-column[i]) == abs(i-row)){ return 0; } } return 1; } void findQueen(int rowNum){ if(rowNum==queenNum){ count++; return; } for(int i=0;i<queenNum;i++){//一行中,逐列去检索 if(isAble(rowNum,i)){//检验该位置是否可以安放 column[rowNum] = i;//记录列号 findQueen(rowNum+1);//下一行对下一个皇后进行安 } } } int main(){ cin>>queenNum; findQueen(0); cout<<"种数:"<<count<<endl; }