Olá…
Estou com um problema na lógica e não consigo encontrar o erro.
O programa deve imprimir todas as combinações possíveis em grupos de 3 e não deve imprimir a mesma combinação mais de uma vez.
Por exemplo:
Temos: A B C D
Todas as combinações possíveis em grupos de 3 é:
A B C
A B D
A C D
B C D
Segue o código:
[code]package teste;
public class Teste
{
static String[] deck = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
public static void main(String[] args)
{
int x=0;
int y=0;
for(int a=0; a<=9; a++)
{
for(int b=x; b<=9; b++)
{
for(int c=y; c<=9; c++)
{
if(!deck[a].equals(deck[b]) && !deck[a].equals(deck[c]) && !deck[b].equals(deck[c]))
{
System.out.println(deck[a] + " " + deck[b] + " " + deck[c]);
}
}
y++;
}
x++;
}
}
}[/code]
[quote=Destronoyzer]Olá…
Estou com um problema na lógica e não consigo encontrar o erro.
O programa deve imprimir todas as combinações possíveis em grupos de 3 e não deve imprimir a mesma combinação mais de uma vez.
Por exemplo:
Temos: A B C D
Todas as combinações possíveis em grupos de 3 é:
A B C
A B D
A C D
B C D
Segue o código:
[code]package teste;
public class Teste
{
static String[] deck = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
public static void main(String[] args)
{
int x=0;[b] // por que o x e o y no mesmo nivel de laço?[/b] eles vão crescer sem voltar ao zero?
int y=0;
for(int a=0; a<=9; a++)
{
for(int b=x; b<=9; b++)
{
for(int c=y; c<=9; c++)
{
if(!deck[a].equals(deck[b]) && !deck[a].equals(deck[c]) && !deck[b].equals(deck[c]))
{
System.out.println(deck[a] + " " + deck[b] + " " + deck[c]);
}
}
y++;
}
x++;
}
}
}[/code][/quote]
Acho que vc precisa zerar o x e o y em algum momento. Vc esqueceu disso.
ve uma outra maneira de fazer, no caso javascript:
<script>
var alfabeto = ["0", "1", "2", "3"];
for(var c1=0; c1<alfabeto.length; c1++)
{
for(var c2=0; c2<alfabeto.length; c2++)
{
if(c2!=c1)
{
for(var c3=0; c3<alfabeto.length; c3++)
{
if(c3!=c1 && c3!=c2)
{
document.write("<br>");
document.write(alfabeto[c1] + " " + alfabeto[c2] + " " + alfabeto[c3] );
}
}
}
}
}
</script>
Certamente devem existir outras formas melhores de se fazer.
Sucesso!