Pagini recente » Cod sursa (job #1638221) | Cod sursa (job #98574) | Cod sursa (job #874207) | Cod sursa (job #197291) | Cod sursa (job #1240861)
#include <stdio.h>
#include <stdlib.h>
int v[19];
void comb(int n, int k, int prev, int i, int v[], FILE *fout){
int x;
if(i<=k)//daca mai avem elemente de luat pana ajungem la k
for(x=prev+1; x<=n-(k-i); x++){//pornim de la elementul precedent+1
v[i]=x;//salvam valoarea curenta in vector
comb(n, k, x, i+1, v, fout);//si continuam ciclul
}
else{//daca nu mai avem elemente de luat
for(x=1; x<=k; x++)//le printam pe cele stocate in vector si trecem la
fprintf(fout, "%d ", v[x]);//urmatoarea combinare
fprintf(fout, "\n");
}
}
int main()
{
FILE *fin, *fout;
int n, k;
fin=fopen("combinari.in", "r");
fscanf(fin, "%d%d", &n, &k);
fclose(fin);
fout=fopen("combinari.out", "w");
comb(n, k, 0, 1, v, fout);
fclose(fout);
return 0;
}