2018-11-15

nCr

nCr

#include <stdio.h>
void CombUtil(int *arr, int *data, int start, int end, int index, int r);
void PrintComb(int *arr, int n, int r);

void PrintComb(int *arr, int n, int r)
{
int data[r];

CombUtil(arr, data, 0, n-1, 0, r);
}

void CombUtil(int *arr, int *data, int start, int end, int index, int r)
{
if(index==r){
printf("{");
for(int j=0; j <= r; j++) printf("%d,", data[j]);
}
printf("}");
printf("\n");

return;
}
for(int i=start; i < end && end-1 >= r-index; i++){
data[index]= arr[i];
CombUtil(arr, data, i+1, end, index+1, r);
}
}

int main()
{
int arr[]= {1,2,3,4,0};
int n= sizeof(arr)/sizeof(arr[0]);
int r=3;

PrintComb(arr, n, r);

return 0;
}


댓글 없음:

댓글 쓰기