Ir para conteúdo
Fórum Script Brasil

Yuri Paropat

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por Yuri Paropat

  1. 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}....

     

×
×
  • Criar Novo...