求排列组合

#include <stdio.h>

void comb(int n, int curr, int d, int * sol)
{
    if (curr == d)
    {
        int i;
        for (i = 0; i < d; ++i)
            printf("%d\t", sol[i]);
        printf("\n");
    }
    else
    {
        int i;
       
        for (i = n; i >= 1; --i)
        {
            sol[curr] = i;
            comb(i-1, curr+1, d, sol);
        }
    }
}

int main(void)
{

    int temp[10] = {0};
    comb(5,0,3,temp);

    return 0;
}

posted @ 2009-02-19 17:20  谭志宇  阅读(177)  评论(0编辑  收藏  举报