SlideShare une entreprise Scribd logo
1  sur  90
#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;
}
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(“nn Solucao %d: nn”, ++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(“xdbRxdb”);
}else{
if((x+y)%2==0){
printf(“ “);
}else{
printf(“xdbxdb
xdb”);
}
}
}
printf(“n”);
}
}
int main()
{
int x;
printf(“n Digite a
dimenção do tabuleiro: “);
scanf(“%d”, &N);
int linhas[N];
n_rainhas(linhas, 0);
return 0;
}
4
4
int main()
{
int x;
printf(“n Digite a
dimenção do tabuleiro: “);
scanf(“%d”,& );
int linhas[ ];
n_rainhas(linhas, 0);
return 0;
}
0 1 2 3
0123
0 1 2 3
0123
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);
}
}
}
0 1 2 3
0123
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);
}
}
}
0 1 2 3
0123
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;
}
0 1 2 3
0123
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);
}
}
}
0 1 2 3
0123
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);
}
}
}
0 1 2 3
0123
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
0123
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);
}
}
}
0 1 2 3
0123
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);
}
}
}
0 1 2 3
0123
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;
}
0 1 2 3
0123
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);
}
}
}
0 1 2 3
0123
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);
}
}
}
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
0 1 2 3
0123
Problema N-Rainhas

Contenu connexe

Tendances

Funcao modular
Funcao modularFuncao modular
Funcao modular
con_seguir
 
19 algoritmos de enumeracao
19   algoritmos de enumeracao19   algoritmos de enumeracao
19 algoritmos de enumeracao
Ricardo Bolanho
 
Função modular propriedades
Função modular   propriedadesFunção modular   propriedades
Função modular propriedades
Péricles Penuel
 
Apostila de derivadas
Apostila de derivadasApostila de derivadas
Apostila de derivadas
smpgiacobbo
 
Cálculo limites, derivadas e integrais
Cálculo   limites, derivadas e integraisCálculo   limites, derivadas e integrais
Cálculo limites, derivadas e integrais
Maick Henrique
 
Matematica grafico da funcao quadratica
Matematica grafico da funcao quadraticaMatematica grafico da funcao quadratica
Matematica grafico da funcao quadratica
con_seguir
 
Www.uff.br gma informacoes disciplinas_calc 03 -a- 2012-2_lista 11
Www.uff.br gma informacoes disciplinas_calc 03 -a- 2012-2_lista 11Www.uff.br gma informacoes disciplinas_calc 03 -a- 2012-2_lista 11
Www.uff.br gma informacoes disciplinas_calc 03 -a- 2012-2_lista 11
Bowman Guimaraes
 

Tendances (19)

Funcao modular
Funcao modularFuncao modular
Funcao modular
 
Função modular
Função modularFunção modular
Função modular
 
Mn aula06-interpolacao
Mn aula06-interpolacaoMn aula06-interpolacao
Mn aula06-interpolacao
 
www.AulasDeMatematicaApoio.com.br - Matemática - Função Afim
 www.AulasDeMatematicaApoio.com.br  - Matemática - Função Afim www.AulasDeMatematicaApoio.com.br  - Matemática - Função Afim
www.AulasDeMatematicaApoio.com.br - Matemática - Função Afim
 
19 algoritmos de enumeracao
19   algoritmos de enumeracao19   algoritmos de enumeracao
19 algoritmos de enumeracao
 
Função modular propriedades
Função modular   propriedadesFunção modular   propriedades
Função modular propriedades
 
Função.quadratica
Função.quadraticaFunção.quadratica
Função.quadratica
 
Amii a complexa_2011
Amii a complexa_2011Amii a complexa_2011
Amii a complexa_2011
 
Apostila de derivadas
Apostila de derivadasApostila de derivadas
Apostila de derivadas
 
Numeros complexos ( semi extensivo)
Numeros complexos ( semi extensivo)Numeros complexos ( semi extensivo)
Numeros complexos ( semi extensivo)
 
www.AulasDeMatematicaApoio.com - Matemática - Função Afim
www.AulasDeMatematicaApoio.com  - Matemática - Função Afimwww.AulasDeMatematicaApoio.com  - Matemática - Função Afim
www.AulasDeMatematicaApoio.com - Matemática - Função Afim
 
www.AulasDeMatematicaApoio.com - Matemática - Frações Algébricas
 www.AulasDeMatematicaApoio.com  - Matemática -  Frações Algébricas www.AulasDeMatematicaApoio.com  - Matemática -  Frações Algébricas
www.AulasDeMatematicaApoio.com - Matemática - Frações Algébricas
 
Exam (9)
Exam (9)Exam (9)
Exam (9)
 
Função modular
Função modularFunção modular
Função modular
 
Questao (60)
Questao (60)Questao (60)
Questao (60)
 
Cálculo limites, derivadas e integrais
Cálculo   limites, derivadas e integraisCálculo   limites, derivadas e integrais
Cálculo limites, derivadas e integrais
 
Matematica grafico da funcao quadratica
Matematica grafico da funcao quadraticaMatematica grafico da funcao quadratica
Matematica grafico da funcao quadratica
 
12.b3.funcao modular 1
12.b3.funcao modular 112.b3.funcao modular 1
12.b3.funcao modular 1
 
Www.uff.br gma informacoes disciplinas_calc 03 -a- 2012-2_lista 11
Www.uff.br gma informacoes disciplinas_calc 03 -a- 2012-2_lista 11Www.uff.br gma informacoes disciplinas_calc 03 -a- 2012-2_lista 11
Www.uff.br gma informacoes disciplinas_calc 03 -a- 2012-2_lista 11
 

En vedette (6)

Daily Health Update from Poway Chiropractor Dr Rode of Rode Chiropractic in P...
Daily Health Update from Poway Chiropractor Dr Rode of Rode Chiropractic in P...Daily Health Update from Poway Chiropractor Dr Rode of Rode Chiropractic in P...
Daily Health Update from Poway Chiropractor Dr Rode of Rode Chiropractic in P...
 
Sintesis informativa 07 04 2015
Sintesis informativa 07 04 2015Sintesis informativa 07 04 2015
Sintesis informativa 07 04 2015
 
Silabo Informatica TICs
Silabo Informatica TICsSilabo Informatica TICs
Silabo Informatica TICs
 
Taller de coleccion bicentenaria
Taller de coleccion bicentenariaTaller de coleccion bicentenaria
Taller de coleccion bicentenaria
 
10 Reasons Why You should travel after Graduating College
10 Reasons Why You should travel after Graduating College10 Reasons Why You should travel after Graduating College
10 Reasons Why You should travel after Graduating College
 
علاقة تقنيات التعليم
علاقة تقنيات التعليمعلاقة تقنيات التعليم
علاقة تقنيات التعليم
 

Similaire à Problema N-Rainhas (15)

Apostila pré cálculo
Apostila pré cálculoApostila pré cálculo
Apostila pré cálculo
 
Imlweb ufmg
Imlweb ufmgImlweb ufmg
Imlweb ufmg
 
Ficha geometria 11ano com resolução
Ficha geometria 11ano com resoluçãoFicha geometria 11ano com resolução
Ficha geometria 11ano com resolução
 
Lista 01 gabarito
Lista 01   gabaritoLista 01   gabarito
Lista 01 gabarito
 
Funcao do 2_grau
Funcao do 2_grauFuncao do 2_grau
Funcao do 2_grau
 
Trabalho de geometria analítica
Trabalho de geometria analíticaTrabalho de geometria analítica
Trabalho de geometria analítica
 
Função modular
Função modularFunção modular
Função modular
 
Função modular
Função modularFunção modular
Função modular
 
Lista de exercícios XIV Python para Zumbis
Lista de exercícios XIV Python para ZumbisLista de exercícios XIV Python para Zumbis
Lista de exercícios XIV Python para Zumbis
 
Revisão de geometria analitica
Revisão de geometria analiticaRevisão de geometria analitica
Revisão de geometria analitica
 
Solução de equações não lineares weslley
Solução de equações não lineares weslleySolução de equações não lineares weslley
Solução de equações não lineares weslley
 
Introdução ao MATLAB
Introdução ao MATLABIntrodução ao MATLAB
Introdução ao MATLAB
 
Inversa vandermonde
Inversa vandermondeInversa vandermonde
Inversa vandermonde
 
Cnsg modulo
Cnsg modulo Cnsg modulo
Cnsg modulo
 
Mn aula06-interpolacao
Mn aula06-interpolacaoMn aula06-interpolacao
Mn aula06-interpolacao
 

Problema N-Rainhas

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. #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; } 2
  • 7. 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(“nn Solucao %d: nn”, ++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(“xdbRxdb”); }else{ if((x+y)%2==0){ printf(“ “); }else{ printf(“xdbxdb xdb”); } } } printf(“n”); } }
  • 8. int main() { int x; printf(“n Digite a dimenção do tabuleiro: “); scanf(“%d”, &N); int linhas[N]; n_rainhas(linhas, 0); return 0; }
  • 9. 4 4 int main() { int x; printf(“n Digite a dimenção do tabuleiro: “); scanf(“%d”,& ); int linhas[ ]; n_rainhas(linhas, 0); return 0; } 0 1 2 3 0123
  • 10. 0 1 2 3 0123 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); } } }
  • 11. 0 1 2 3 0123 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); } } }
  • 12. 0 1 2 3 0123 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; }
  • 13. 0 1 2 3 0123 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); } } }
  • 14. 0 1 2 3 0123 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); } } }
  • 15. 0 1 2 3 0123 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; }
  • 16. 0 1 2 3 0123 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); } } }
  • 17. 0 1 2 3 0123 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); } } }
  • 18. 0 1 2 3 0123 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; }
  • 19. 0 1 2 3 0123 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); } } }
  • 20. 0 1 2 3 0123 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); } } }
  • 21. 0 1 2 3 0123
  • 22. 0 1 2 3 0123
  • 23. 0 1 2 3 0123
  • 24. 0 1 2 3 0123
  • 25. 0 1 2 3 0123
  • 26. 0 1 2 3 0123
  • 27. 0 1 2 3 0123
  • 28. 0 1 2 3 0123
  • 29. 0 1 2 3 0123
  • 30. 0 1 2 3 0123
  • 31. 0 1 2 3 0123
  • 32. 0 1 2 3 0123
  • 33. 0 1 2 3 0123
  • 34. 0 1 2 3 0123
  • 35. 0 1 2 3 0123
  • 36. 0 1 2 3 0123
  • 37. 0 1 2 3 0123
  • 38. 0 1 2 3 0123
  • 39. 0 1 2 3 0123
  • 40. 0 1 2 3 0123
  • 41. 0 1 2 3 0123
  • 42. 0 1 2 3 0123
  • 43. 0 1 2 3 0123
  • 44. 0 1 2 3 0123
  • 45. 0 1 2 3 0123
  • 46. 0 1 2 3 0123
  • 47. 0 1 2 3 0123
  • 48. 0 1 2 3 0123
  • 49. 0 1 2 3 0123
  • 50. 0 1 2 3 0123
  • 51. 0 1 2 3 0123
  • 52. 0 1 2 3 0123
  • 53. 0 1 2 3 0123
  • 54. 0 1 2 3 0123
  • 55. 0 1 2 3 0123
  • 56. 0 1 2 3 0123
  • 57. 0 1 2 3 0123
  • 58. 0 1 2 3 0123
  • 59. 0 1 2 3 0123
  • 60. 0 1 2 3 0123
  • 61. 0 1 2 3 0123
  • 62. 0 1 2 3 0123
  • 63. 0 1 2 3 0123
  • 64. 0 1 2 3 0123
  • 65. 0 1 2 3 0123
  • 66. 0 1 2 3 0123
  • 67. 0 1 2 3 0123
  • 68. 0 1 2 3 0123
  • 69. 0 1 2 3 0123
  • 70. 0 1 2 3 0123
  • 71. 0 1 2 3 0123
  • 72. 0 1 2 3 0123
  • 73. 0 1 2 3 0123
  • 74. 0 1 2 3 0123
  • 75. 0 1 2 3 0123
  • 76. 0 1 2 3 0123
  • 77. 0 1 2 3 0123
  • 78. 0 1 2 3 0123
  • 79. 0 1 2 3 0123
  • 80. 0 1 2 3 0123
  • 81. 0 1 2 3 0123
  • 82. 0 1 2 3 0123
  • 83. 0 1 2 3 0123
  • 84. 0 1 2 3 0123
  • 85. 0 1 2 3 0123
  • 86. 0 1 2 3 0123
  • 87. 0 1 2 3 0123
  • 88. 0 1 2 3 0123
  • 89. 0 1 2 3 0123