<p>// 8 reinas.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "iostream" #include "vector" #include "cmath" #include "algorithm" using namespace std; const int N = 8; int fac(int n) { int ret = 1; if(n <= 1) return 1; for(int i = 2 ; i <= n ; ++i) ret *= i; return ret; } bool isCorrectChecker(vector<int>& ar) { for(int i = 0 ; i < ar.size() ; ++i) { for(int j = 0 ; j < ar.size() ; ++j) if( abs(ar[i] - ar[j]) == abs(i - j) && i != j ) return false; } return true; } vector< vector<int> > getCorrectChecker(vector<int>& ar) { vector< vector<int> > ret; for(int i = 0 ; i < fac( ar.size() ) ; ++i) { next_permutation(ar.begin(), ar.end()); if( isCorrectChecker(ar) ) ret.push_back( ar ); } return ret; } void showResult(vector< vector<int> >& result) { for(int i = 0 ; i < result.size() ; ++i) { for(int j = 0 ; j < result[i].size() ; ++j) cout << result[i][j] << " "; cout << endl; } } vector<int> getDatas() { vector<int> ret(N); for(int i = 0 ; i < N ; ++i) ret[i] = i + 1; return ret; } int main(int argc, char* argv[]) { int totalNum = 0; vector<int> ar = getDatas(); vector< vector<int> > result = getCorrectChecker(ar); showResult(result); return 0; } </int></int></int></int></int></int></int></int></int></p>
8 reinas
Encuentra una solucion para el problema de las 8 reinas en un tablero de ajedrez.
Hecho en Visual c++
Win32 Console Application
Simple Application
Descargar adjuntos
COMPARTE ESTE TUTORIAL
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP