原文連結:《八皇後問題的非遞歸解法》
想不服都不行,實在是太牛的代碼,詭異的算法思路,出神入化的STL技巧。。。
複制代碼
#include <cmath>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int MAX = 8;
vector<int> board(MAX);
void show_result()
{
for(size_t i = 0; i < board.size(); i++)
cout<<"("<<i<<","<<board[i]<<")";
cout<<endl;
}
int check_cross()
for(size_t i = 0; i < board.size()-1; i++)
{
for(size_t j = i+1; j < board.size(); j++)
{
if((j-i) == (size_t)abs(board[i]-board[j]))
return 1;
}
}
return 0;
void put_chess()
while(next_permutation(board.begin(), board.end()))
if(!check_cross())
show_result();
int main()
for(size_t i =0; i < board.size(); i++)
board[i] = i;
put_chess();
本文轉自Phinecos(洞庭散人)部落格園部落格,原文連結:http://www.cnblogs.com/phinecos/archive/2008/11/04/1326614.html,如需轉載請自行聯系原作者