Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Problema de tabuleiro de n rainhas JAVA

$
0
0

@Fabricia_Santos2344 escreveu:

public class tabuleirorainhas {

public static boolean choque(int[] rainha, int n) {
    for (int i = 0; i < n; i++) {
        if (rainha[i] == rainha[n])             
            return false;   // coluna
        if ((rainha[i] - rainha[n]) == (n - i)) 
            return false;   // diagonal
        if ((rainha[n] - rainha[i]) == (n - i)) 
            return false;   // menor diagonal
    }
    return true;
}

public static void mostrar(int[] q) {
    int n = q.length;
    for (int linha = 0; linha < n; linha++) {
        for (int coluna = 0; coluna < n; coluna++) {
            if (q[linha] == coluna) 
                System.out.println("R");
            else           
                System.out.println("*");
        }
        System.out.println();
    }  
    System.out.println();
}

public static void tabuleiro(int n) {
int[] a = new int[n];
tabuleiro(a, 0);
}

public static void tabuleiro(int[] rainha, int k) {
    int n = rainha.length;
    if (k == n) 
        mostrar(rainha);
    else {
        for (int i = 0; i < n; i++) {
            rainha[k] = i;
            if (choque(rainha, k)) 
                tabuleiro(rainha, k+1);
        }
    }
}  

public static void main(String[] args) {
    int n = Integer.parseInt(args[0]);
    tabuleiro(n);
}

}

//O ERRO QUE APARECE
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at estruturadedados2.tabuleiro8rainhas.main(tabuleiro8rainhas.java:54)
C:\Users\Fabricia\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 1 segundo)

Mensagens: 2

Participantes: 1

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>