Ir ao conteúdo
  • Cadastre-se

Ajudaporfavor

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

posts postados por Ajudaporfavor

  1. Alguém poderia me ajudar a passar esse código de java para portugol?

    Desde já obrigado.

     

    #include <stdio.h>
    
    void io(int puzzle[][9], int n, int f)
    {
      int i, j;
    
      for(i = 0; i < n; i++)
      {
        for(j = 0; j < n; j++)
        {
          if(f) scanf("%d", &puzzle[i][j]);
          else  printf("%d ", puzzle[i][j]);
        }
        if(!f)
          printf("\n");
      }
    }
    /* i e j representam a linha e a coluna, respectivamente
    da célula que queremos preencher com o número x */
    
    // puzzle matriz onde se encontra o sudoku</pre>
    int isPossible(int i, int j, int puzzle[][9], int x)
    {
        int l, k, lin, col;
        for(k = 0; k < 9; k++)
        {
            if(puzzle[k][j] == x) return 0; // procura na colula j
            if(puzzle[i][k] == x) return 0; // procura na linha i
        }
    
        lin = (i / 3) * 3; /* essa operação fornece a linha
                            da primeira célula do quadrante*/
        col = (j / 3) * 3; /* essa operação fornece a coluna
                            da primeira célula do quadrante*/
        // procura na sub grade
        for(l = lin; l < lin+3; l++)
        {
            for(k = col; k < col+3; k++)
            {
                if(puzzle[l][k] == x)
                    return 0;
            }
        }
        return 1;
    }
    int solve(int puzzle[][9], int i, int j)
    {
        int x, lin, col;
        col = j; lin = i;
    
        if(i == 9) // Econtramos uma solução
            return 1;
    
        // 1
        if(col < 8) col++;
        else
        {
            lin++;
            col = 0;
        }
    
        // 2
        if(puzzle[i][j]) return solve(puzzle, lin, col);
        else
        {
            for(x = 1; x <= 9; x++) // 2.1
            {
                if(isPossible(i, j, puzzle, x))
                {
                    puzzle[i][j] = x;
                    // 3
                    if(solve(puzzle, lin, col)) return 1;
                    puzzle[i][j] = 0;
                }
            }
        }
        return 0; // não encotramos solução
    }
    
    int main(void)
    {
      int n, x;
      n = 9;
    
      int puzzle[9][9];
      io(puzzle, n, 1);
    
      x = solve(puzzle, 0, 0);
      if(x) io(puzzle, n, 0);
      else printf("Nao existe solucao\n");
    
      return 0;
    }

     

    adicionado 0 minutos depois

    Ele serve para resolver um sudoku mas estou com dificuldades para passar ele.

     

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!