买水果问题,用c语言和c++回答

今天zz突然想吃水果了,然后他到超市去买水果,现超市有n个不同的水果,zz要买m个水果

(m<=n);那么zz有多少种买水果的方式??

这个应该是排列组合的问题,和彩票22选5类似,可以参考这个

http://wenku.baidu.com/link?url=L91yYWksToQXFnfyKL22o83XzvR2l6CBrNDVdhw1Gkjz1gAtcE6uC6ih14FzMRew5LeZ3jNVp0uXhJtSzir9QFxeUPABcuiGsh_dGQ1Hdra

#include

#include

int num[15] = {0};

void print(int n, int m, int p, int x)

{

int i,j;

if(p)

{

p--;

num[x - p - 1] = m;

for(i = m + 1; i < n; i++)

{

print(n, i, p, x);

num[x - p -1] = i;

}

}

else

{

printf("%d", num[0]);

for(j=1; j<x; j++) printf(" %d", num[j]);

printf("\n");

}

}

int main()

{

int n, i;

int *t1;

int *t2;

scanf("%d", &n);

t1 = (int *)malloc(sizeof(int) * n);

t2 = (int *)malloc(sizeof(int) * n);

for(i=0;i<n;i++)

{

scanf("%d %d", t1+i, t2+i);

if(t1[i]>15 || t2[i] > t1[i])

{

printf("输入错误!\n");

i--;

}

}

for(i=0;i<n;i++)

{

printf("Case %d:\n", i+1);

print(t1[i]+2, 1, t2[i], t2[i]);

}

free(t1);

free(t2);

return 0;

}

alt text

代码显示有问题,参考 http://zhidao.baidu.com/link?url=3zz_e54BtSn9lbwOX5MktNDjSpruE-w1iDX-FYQNezC297kJri9Hf8mj5FXjVii7Y1Y8nmWIqV3zda_RLjHRj-4B13p7I_OZYpat9bmRL6m

这是 n 个数据 中取m个的 组合的取法
罗列一下

是不是需要考虑一粒葡萄人家不卖给你的情况啊?