0001 #include "../queen_brute_force_1/queen.h" 0002 0003 /****************************************************************************************** 0004 * 全局变量 0005 ******************************************************************************************/ 0006 RunMode runMode; //演示模式 0007 int nSolu = 0; //解的总数 0008 int nCheck = 0; //尝试的总次数 0009 0010 /****************************************************************************************** 0011 * n皇后(递归版) 0012 ******************************************************************************************/ 0013 int main ( int argc, char* argv[] ) { 0014 if ( argc < 3 ) //检查命令行格式 0015 { cout << "Usage: " << argv[0] << " <-step | -cont> <#Queen>" << endl; return -1; } 0016 if ( !strcmp ( "-step", argv[1] ) ) runMode = Step; //设定为单步演示模式 0017 else if ( !strcmp ( "-cont", argv[1] ) ) runMode = Continuous; //设定为连续演示模式 0018 else { cout << "Unrecognizable running mode" << endl; return -2; } 0019 int nQueen = atoi ( argv[2] ); //#queens 0020 if ( 1 > nQueen || nQueen > QUEEN_MAX ) 0021 { cout << "Make sure 1 <= #queen <= " << QUEEN_MAX << endl; return -2; } 0022 placeQueens ( nQueen, 0 ); //启动算法 0023 cout << nSolu << " solution(s) found after " 0024 << nCheck << " check(s) for " 0025 << nQueen << " queen(s)\n"; //输出解的总数 0026 return 0; 0027 }