Problema N-Rainhas

Post on 21-Jun-2015

88 views 0 download

Tags:

description

N-Rainhas usando vetor

transcript

Problema das N-Rainhas

Edison DantasMarcos ViníciusHumberto MoraisKérisson Falcão

Problema das 8 - Rainhas

Problema das 8 - Rainhas

Problema das 8 - Rainhas

Problema das 8 - Rainhas

Problema das N - Rainhas#define FALSE 0#define TRUE 1 int N; int salvaPosicaoRainha(int linhas[N], int x, int y){ int i; if (y == 0) return 1; for (i=0; i < y; ++i) {

if (linhas[i] == x || linhas[i] == x + y - i || linhas[i] == x - y +i return 0; } return 1;} 

N lin

has

N colunas

2

int main(){ int x; printf(“\n Digite a dimenção do tabuleiro: “); scanf(“%d”, &N); int linhas[N];n_rainhas(linhas, 0); return 0;}

void n_rainhas(int linhas[N], int y){ int x; for (x=0; x < N; ++x) { if (salvaPosicaoRainha(linhas, x , y)) { linhas[y] = x; if (y == N-1) imprimirSolucoesPossiveis(linhas); else n_rainhas(linhas, y+1); } }}

void imprimirSolucoesPossiveis(int linhas[N]){ static int s = 0 int x, y,cont; printf(“\n\n Solucao %d: \n\n”, ++s);  for (y=0; y < N; y++) { for (x=0; x < N; x++){ if(x == linhas[y]){ if((x+y%) 2==0) printf(“ R “); else printf(“\xdbR\xdb”); }else{ if((x+y)%2==0){

printf(“ “); }else{ printf(“\xdb\xdb \xdb”); } }  } printf(“\n”); }}

Problema das N - Rainhas

Problema das N - Rainhasint main()

{ int x; printf(“\n Digite a dimenção do tabuleiro: “); scanf(“%d”, &N); int linhas[N];n_rainhas(linhas, 0); return 0;}

N = 4

4 4

int main(){ int x; printf(“\n Digite a dimenção do tabuleiro: “); scanf(“%d”,& ); int linhas[ ];n_rainhas(linhas, 0); return 0;}

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

void n_rainhas(int linhas[N], int y){ int x; for (x=0; x < N; ++x) { if (salvaPosicaoRainha(linhas, x , y)) { linhas[y] = x; if (y == N-1) imprimirSolucoesPossiveis(linhas); else n_rainhas(linhas, y+1); } }}

Problema das N - Rainhas

0 1 2 3

0 1 2 3

void n_rainhas(int linhas[4], int 0){ int x; for (x=0; x < 4; ++x) { if (salvaPosicaoRainha(linhas, x , y)) { linhas[y] = x; if (y == 4-1) imprimirSolucoesPossiveis(linhas); else n_rainhas(linhas, 0+1); } }}

Problema das N - Rainhas

0 1 2 3

0 1 2 3

int N; int salvaPosicaoRainha(int linhas[4], int 0, int 0){ int i; if (y == 0) return 1; for (i=0; i < 0; ++i) {

if (linhas[i] == x || linhas[i] == x + y - i || linhas[i] == x - y +i return 0; } return 1;} 

Problema das N - Rainhas

0 1 2 3

0 1 2 3

void n_rainhas(int linhas[4], int 0){ int x; for (x=0; x < 4; ++x) { if (salvaPosicaoRainha(linhas, 0 , 0)) { linhas[0] = 0; if (0 == 4-1) imprimirSolucoesPossiveis(linhas); else n_rainhas(linhas, 0+1); } }}

Problema das N - Rainhas

0 1 2 3

0 1 2 3

void n_rainhas(int linhas[4], int 1){ int x; for (x=0; x < 4; ++x) { if (salvaPosicaoRainha(linhas, 0 , 1)) { linhas[1] = 0; if (0 == 4-1) imprimirSolucoesPossiveis(linhas); else n_rainhas(linhas, 0+1); } }}

Problema das N - Rainhas

0 1 2 3

0 1 2 3

int N; int salvaPosicaoRainha(int linhas[4], int 0, int 1){ int i; if (1 == 0) return 1; for (i=0; i < 1; ++i) {

if (linhas[i] == 0 || linhas[i] == 0 + 1 - i || linhas[i] == 0 - 1 +i return 0; } return 1;} 

0 1 2 3

0 1 2 3

void n_rainhas(int linhas[4], int y ==1){ int x; for (x=0; 1 < 4; ++x) { if (salvaPosicaoRainha(linhas, 1 , 1)) { linhas[1] = x; if (y == 4-1) imprimirSolucoesPossiveis(linhas); else n_rainhas(linhas, y+1); } }}

Problema das N - Rainhas

0 1 2 3

0 1 2 3

void n_rainhas(int linhas[4], int y ==1){ int x; for (x=0; 2 < 4; ++x) { if (salvaPosicaoRainha(linhas, 2 , 1)) { linhas[1] = 2; if (y == 4-1) imprimirSolucoesPossiveis(linhas); else n_rainhas(linhas, y+1); } }}

Problema das N - Rainhas

0 1 2 3

0 1 2 3

int N; int salvaPosicaoRainha(int linhas[4], int 2, int 1){ int i; if (1 == 0) return 1; for (i=0; i < 1; ++i) {

if (linhas[i] == 2 || linhas[i] == 2 + 1 - i || linhas[i] == 2 - 1 +i return 0; } return 1;} 

Problema das N - Rainhas

0 1 2 3

0 1 2 3

void n_rainhas(int linhas[4], int y ==1){ int x; for (x=0; 2 < 4; ++x) { if (salvaPosicaoRainha(linhas, 2 , 1)) { linhas[1] = 2; if (y == 4-1) imprimirSolucoesPossiveis(linhas); else n_rainhas(linhas, y+1); } }}

Problema das N - Rainhas

0 1 2 3

0 1 2 3

void n_rainhas(int linhas[4], int y ==2){ int x; for (x=0; 0 < 4; ++x) { if (salvaPosicaoRainha(linhas, 2 , 1)) { linhas[2] = 0; if (y == 4-1) imprimirSolucoesPossiveis(linhas); else n_rainhas(linhas, y+1); } }}

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

0 1 2 3

0 1 2 3

Problema das N - Rainhas

Perguntas