GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Preeencher tabela com numeros q nao se repetem


#1

Olá !!! Alguem poderia me ajudar por favor ??

Eu preciso criar uma tabela em que o usuario informa o numero de colunas e linhas, sendo o maximo 9 linhas e 9 colunas. Depois devo preenche-la com numeros de 1 a 9, sem repeti-los numa mesma linha ou coluna. Por exemplo:

1 2 3 4
2 3 4 5
3 4 5 6

Me ajudem, é muito urgente !!!!!


#2

Você quer montar um tabuleiro de Sudoku? Isso parece lição de casa, ou (pior) teste para admissão em algum emprego.


#3

Se quer a resposta pronta, procure por "Sudoku", "Java" e "create". Por exemplo:

http://www.cs.wisc.edu/~jerryzhu/cs540/project/proposal/eries/index.html


#4

int linhas = 10;
int colunas = 10;
for (int i = 0; i &lt linhas; i++) {
  for (int j = 0; j &lt colunas; j++) {
    System.out.print(i + j + 1 + " ");
  }
  System.out.println("");
}

Esse foi de cabeça.;..


#5

[quote=nbluis]

int linhas = 10;
int colunas = 10;
for (int i = 0; i &lt linhas; i++) {
  for (int j = 0; j &lt colunas; j++) {
    System.out.print(i + j + 1 + " ");
  }
  System.out.println("");
}

Esse foi de cabeça.;..[/quote]

Se for de 1 a 9 os números possíveis, esse código está errado, mesmo que com 9x9.

Até!


#6

Se for para um curso técnico, a solução trivial é válida, já que ele não quer um tabuleiro aleatório, mas sim algo tão simples quanto a permutação mostrada.
Você adapta para o caso em que menos colunas e linhas são necessárias.

class TesteTabuleiro {
    public static void main(String[] args) {
        int nLinhas = 9;
        int nColunas = 9;
        for (int i = 1; i &lt= nLinhas; ++i) {
            for (int j = 1; j &lt= nColunas; ++j) {
                int x = i + j; 
                x = x % 9;  // explique-me o que isto faz...
                if (x == 0) { // explique-me o que isto faz...
                    x = 9; // explique-me o que isto faz...
                }
                System.out.print (x + " ");
            }
            System.out.println ();
        }
    }
}

Pergunta: no código acima, qual é o primeiro número que aparece na tabela?


#7

Para que simplificar se pode complicar?
Vou tirar o if daí

//Adaptado do thingol
class TesteTabuleiro2 {
    public static void main(String[] args) {
        int nLinhas = 9;
        int nColunas = 9;
        for (int i = 1; i &lt= nLinhas; ++i) {
            for (int j = 1; j &lt= nColunas; ++j) {
                int x = i + j; 
                x = x % 9 +1;  // agora sim! Ficou mais legal. =)
                System.out.print (x + " ");
            }
            System.out.println ();
        }
    }
}

Até!


#8