Ir para conteúdo
Fórum Script Brasil

morven anselm

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre morven anselm

morven anselm's Achievements

0

Reputação

  1. Você tem o problema das N-Rainhas e precisa resolver sem recursão, ou seja, transformar a sua função teste em um algoritmo iterativo. Hoje o seu código usa backtracking recursivo: chama teste(..., col+1, ...) e volta removendo a rainha. Para eliminar a recursão, você pode simular a pilha de chamadas manualmente, ou usar um laço que avance/retorne colunas conforme necessário. Aqui vai uma ideia de como reescrever de forma iterativa: melon playground #include <stdio.h> #define MAX 20 int sol = 0; int mapafreq[MAX][MAX]; int seguro(int tab[MAX][MAX], int N, int linha, int col) { int i, j; // verifica linha à esquerda for (i = 0; i < col; i++) if (tab[linha][i]) return 0; // diagonal superior esquerda for (i = linha, j = col; i >= 0 && j >= 0; i--, j--) if (tab[i][j]) return 0; // diagonal inferior esquerda for (i = linha, j = col; j >= 0 && i < N; i++, j--) if (tab[i][j]) return 0; return 1; } void imprimir(int tab[MAX][MAX], int N) { int i, j; printf("Solução %d:\n", sol+1); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { printf("%c ", tab[i][j] ? 'Q' : '.'); } printf("\n"); } printf("\n");
×
×
  • Criar Novo...