Criar fechamento

0 respostas
java
J

Pessoal eu só quero uma luz de como fazer esse fechamento.
aqui tá todas as sequencias de três : 123, 124, 125, 126, 127, 128, 134, 135, 136, 137, 138, 145, 146, 147, 148, 156, 157, 158, 167, 168, 178, 234, 235, 236, 237, 238, 245, 246, 247, 248, 256, 257, 258, 267, 268, 278, 345, 346, 347, 348, 356, 357, 358, 367, 368, 378, 456, 457, 458, 467, 468, 478, 567, 568, 578, 678.

mais o código não tá me trazendo dentro dos conjuntos de 5 pelo menos uma cobertura de de 3. tem conjunto que fica de fora.

package br.Exercicio;

import java.util.Scanner;

public class CombinaReduzido {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int[] vetA = new int[5];
    int[][] array = new int[999][5];

    int num = 0, iguais = 0, cont = 0, total = 0;

    System.out.println("Digite numero Comb:");
    num = scan.nextInt();

    for (int n1 = 1; n1 <= num; n1++) {
        vetA[0] = n1;
        for (int n2 =n1 + 1;n2 <= num; n2++) {
            vetA[1] = n2;
            for (int n3 =n2 + 1;n3 <= num; n3++) {
                vetA[2] = n3;
                for (int n4 =n3 + 1;n4 <= num; n4++) {
                    vetA[3] = n4;
                    for (int n5 =n4 + 1;n5 <= num; n5++) {
                        vetA[4] = n5;

                        total++;

                        for (int t = 0; t <= cont; t++) {
                            iguais = 0;
                            for (int i = 0; i < 5; i++) {
                                for (int j = 0; j < 5; j++) {
                                    if (vetA[i] == array[t][j]) {
                                        iguais = iguais + 1;
                                    }
                                }
                            }
                            if (iguais >= 4) {
                                break;
                            }
                        }
                        if (iguais < 4) {
                            cont = cont + 1;
                            for (int x = 0; x < 5; x++) {
                                array[cont][x] = vetA[x];
                            }
                            System.out.println(" "+vetA[0]+" "+vetA[1]+" "+ vetA[2]+" "+ vetA[3]+" "+vetA[4]);
                        }

                    }                        
                }
            }
        }
    }
    System.out.println("reduzidos:"+ cont);
System.out.println("total gerados:"+ total);
}

}

Criado 26 de março de 2020
Respostas 0
Participantes 1