Problema com variáveis para resolver Combinações.[Resolvido]

4 respostas
guilherme.oq

Este programa recebe o número de dezenas que o jogador da Mega-Sena pretende jogar.
Porém, o jogador só pode apostar 6 dezenas em cada jogo. Logo, o objetivo do programa é pegar as “n” dezenas (7,8,9 ou 10 dezenas) e mostrar as combinações tomadas 6 à 6.

Comecei a desenvolver o codigo, mas eu só sei criar um programa para um numero de dezenas que eu já sei e ainda com essas dezenas informadas no código.
Observem abaixo que este codigo só resolve meu problema para 7 dezenas e especificamente para as dezenas: 8,16,32,34,40,46,54.

Minha duvida é: como eu armazeno os numeros do jogador ali no lugar desses numeros. Isto é, evitar dos numeros ja ficarem incluidos no codigo.
Importante: O jogador é limitado ao numero de dezenas que vai inserir. Ele soh pode inserir 6,7,8,9 ou 10 dezenas.

import java.util.Scanner;
   public class Combinacoes{  
      
	private int numeros[] = {8,16,32,34,40,46,54};//aqui devera ficar armazenado as dezenas do jogador.
	private int quantidade = 6;//sempre, o numero de combinaçoes é tomado 6 à 6.
	private int resultado[] = new int[6];//aqui é 6 porque é o numero padrao de apostas.
	
	private int count = 0;
	
	private void busca(int inicio,int fim, int profundidade){

	if ( (profundidade + 1) >= quantidade)
	for(int x = inicio; x <= fim; x++){  
	resultado[profundidade] = numeros[x];
            
   count++;
   System.out.println(resultado[0] + ", "+resultado[1] + ", "+resultado[2]+", "+resultado[3]+", "+resultado[4]+", "+resultado[5]+"\n");
   }
    else
        for(int x = inicio; x <= fim; x++){
            resultado[profundidade] = numeros[x];
            busca(x + 1,fim + 1,profundidade + 1);
        }
    }

    public static void main(String args[]){
	 
	 int n;
	 
	 Scanner sc;
	 sc = new Scanner(System.in);
	 
	 System.out.println("Informe a quantidade de dezenas que voce pretende apostar.");
	 n = sc.nextInt(); //coloquei isso aqui caso seja necessário usar Condicional, cada uma para uma quantidade de dezenas.
	 
	 System.out.println("Agora, informe essas dezenas para que seja mostado todas as combinaçoes com 6 elementos.");
	 /*Aqui está o problema... Como eu faço para armazernar uma quantidade de números que o usuário vai informar, lembrando que
	 	essa quantidade so pode ser 6,7,8,9 ou 10 dezenas.*/
	 
        Combinacoes comb = new Combinacoes();
        comb.busca(0, (7-6), 0);//aqui esta a formula de combinaçoes, onde o 7 é o numero de elementos e o 6 a quantidade de elementos por grupo.
        System.out.println("Total de combinacoes: " + comb.count);//isso aqui nao é tao importante, mas da "confiança" a resposta.

    }
}

4 Respostas

shogogan

bem… eu não entendi direito o que tu ta querendo e talz… mais vamo ver se é isso
e antes de tudo copia e cola o codigo aqui usando o [code é melhor de ver…

vamos ver o que você quer é um numero randomico né?

pode ser tipo

Random rand = new Random();
numeros[0] = rand.nextInt(100)+1;//só para chegar até o 100 e anular o 0

não pensei num metodo para todos os numeros mais eu acho que isso ajuda .-.

Shogogan

guilherme.oq

Obrigado mesmo pela dica!..vou fazer uns testes utilizando o que voce me passou e qualquer coisa volto a postar aki. :wink:

Eu esqueci de deixar mais explicado, mas o problema é que nao estou conseguindo incluir no Main o seguinte:

  1. uma pergunta do tipo: “- Informe suas dezenas.”
  2. O programa uria ler essas dezenas
  3. e ai o programa faz a combinaçao e mostra.

Do jeito que está, ele simplesmente faz o que o programador escreve… e nao o que o usuario quer… :shock:
Consertei o codigo acima deixando-o legivel. :!:

guilherme.oq

Obrigado pela dica. Dei uma estuda em arrays, classes, metodos… e descobri que bastava eu criar variaveis logo no inicio do codigo para armazenar as dezenas. Aí no Main eu coloquei pro usuario informar as dezenas… e atraves de Condicionais eu organizei para cada uma das possiveis escolhas do numero de dezenas.
Obrigado novamente… :smiley:

C

O meu pedido pode ser estranho, mas será que poderiam explicar o funcionamento do código. Obrigado

Criado 12 de junho de 2010
Ultima resposta 1 de mai. de 2011
Respostas 4
Participantes 3