Corrigir método

21/08/2019

0

Olá gostaria de uma ajuda no código, onde estou errando.
como funciona ele tem dois métodos, um gerar uma combinação e faz uma filtragem, outro ele lê um arquivo com uma combinação e faz filtragem também.

package teste;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Teste {

public static void main(String[] args) {

String s;
int[] TamVetor ={1,2,3,4,5,6,7,8,9,10};
int[] Gerador = TamVetor;
int[][] bigArr = null;
int mx = 10;

Teste obj = new Teste();
obj.Gerador(TamVetor, 10);
obj.LerLista(bigArr, Gerador, mx);


}
private int Gerador(int[] TamVetor, int mx) {

int a1, a2, a3, a4, a5, a6;
int i =0, j=0, r = 0, x = 0;
int[] arr = new int[6];
int[][] bigArr = null;

for (a1 = ((mx - (mx - 6)) + 1); (a1 <= mx); a1++) {
arr[1] = arr[1] + 1;
arr[2] = arr[1];
for (a2 = (a1 - 1); (a2 <= mx); a2++) {
arr[2] = (arr[2] + 1);
arr[3] = arr[2];
for (a3 = a2; (a3 <= mx); a3++) {
arr[3] = (arr[3] + 1);
arr[4] = arr[3];
for (a4 = a3; (a4 <= mx); a4++) {
arr[4] = (arr[4] + 1);
arr[5] = arr[4];
for (a5 = a4; (a5 <= mx); a5++) {
arr[5] = (arr[5] + 1);
arr[6] = arr[5];
for (a6 = a5; (a6 <= mx); a6++) {
arr[6] = (arr[6] + 1);
r = r + 1;
filterComb(bigArr, arr, x);
}
}
}
}
}

}

for (i = 1;i <= 6; i++) {
arr[i] = ((mx - 6) + i);
}

filterComb(bigArr, arr, x);

return mx;
}

private static void filterComb(int bigArr[][], int arr[], int x) {
boolean b = false;
int i, j, k, f;

if ((x < 1)) {
x = (x + 1);
for (i = 1; i <= 6; i++) {
bigArr[i][1] = arr[i];
}
// filterComb = true;

} else {

for (i = 1; (i <= x); i++) {
f = 0;
for (j = 1; (j <= 6); j++) {
for (k = 1; (k <= 6); k++) {
if ((bigArr[j][x] == arr[k])) {
b = true;
break;
}
}
if (b) {
f = (f + 1);
b = false;
if ((f == 4)) {
// já encontrei 4 duplicado, não adianta mais procurar
// sair da função retornar valor
return;
}
}
if (((j - f) > 2)) {
// não pode ser 4 duplicado na matriz, pule para proxima
break;
}
}
}

x = (x + 1);
for (i = 1; (i <= 6); i++) {
bigArr[i][x] = arr[i];
}
// filterComb = true;
}

return;
}

private static void LerLista(int bigArr[][], int arr[], int x){
String path = "D:\\\\\\\\Conteudo\\\\\\\\teste.txt";
BufferedReader br = null;
FileReader fr = null;
try {

fr = new FileReader(path);
br = new BufferedReader(fr);
String line = br.readLine();

while (line != null) {
System.out.println(line);
line = br.readLine();
filterComb(bigArr, arr, x);
}

} catch (IOException e) {
System.out.println("Error: " + e.getMessage());
} finally {
try {
if (br != null)
br.close();
if (fr != null)
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Joelson Cardoso

Joelson Cardoso

Responder

Posts

13/09/2019

Yan Santos

Camarada, não consegui entender direito o seu código, observei que vocês criou o vetor TamVetor, passou na para o método Gerador, mas TamVetor não é utilizado no método Gerador
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar