今天zz突然想吃水果了,然后他到超市去买水果,现超市有n个不同的水果,zz要买m个水果
(m<=n);那么zz有多少种买水果的方式??
这个应该是排列组合的问题,和彩票22选5类似,可以参考这个
#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;
}
这是 n 个数据 中取m个的 组合的取法
罗列一下
是不是需要考虑一粒葡萄人家不卖给你的情况啊?