Ir para conteúdo
Fórum Script Brasil
  • 0

Combinações recursivo


Yuri Paropat

Pergunta

Saudações amigos, estou com dificuldade em fazer um código recursivo em C. Basicamente o algorítimo pega um vetor e faz as combinações entre os valores desse vetor.

Um exemplo de um vetor de 3 posições {0,1,2}, sua combinação seria a={0,1} b={0,2} e c={1,2}.

Tenho um código que printa essas combinações, segue abaixo:

void comb(int v[],int n){
	int i,j;
	for(i=0;i<n-1;i++){
		for(j=i+1,j<n;j++) printf("%d %d \n",v[i],v[j]);
	}
}

Como ficaria ele recursivo? Visto que ao variar n, é acrescentado mais um for dentro do segundo loop, veja um exemplo com 3 posições:

void comb(int v[],int n){
	int i,j,k;
	for(i=0;i<n-2;i++){
		for(j=i+1,j<n-1;j++){
			for(k=j+1;k<n;k++) printf("%d %d %d \n",v[i],v[j],v[k]);
		}
	}
}

Venho quebrando a cabeça a dias e não encontro a solução.

 

Gostaria de armazenar o resultado das combinações em outro vetor, minha ideia foi pra algo nesse sentido:

int *combR(int v[],int n,int k){
	int i,*r;
	
	r=("função Recursiva"); 

	return r;
}

//k = posição da combinação. Ex: k=0 {0,1,2}, k=1 {0,1,3} k=2 {0,2,3}....

 

Editado por Yuri Paropat
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...