关于排列组合问题 50
有10个数字,从里面任取5个数字组合,请能人写出这个问题的C程序,补充一下,想要这样的一个程序:条件是1到10,10个数,要求,得到所有任意5个数组成的组合,能列出所有的...
有10个数字,从里面任取5个数字组合,请能人写出这个问题的C程序,
补充一下,想要这样的一个程序:条件是1到10,10个数,要求,得到所有任意5个数组成的组合,能列出所有的组合,组合成的数字没有顺序限制,(比如说,1,2,3,4,5和2,1,4,3,5或4,1,5,2,3..........是一个组合),明白吗,就是组合成的确数组只要数字一样就算是一个组合 展开
补充一下,想要这样的一个程序:条件是1到10,10个数,要求,得到所有任意5个数组成的组合,能列出所有的组合,组合成的数字没有顺序限制,(比如说,1,2,3,4,5和2,1,4,3,5或4,1,5,2,3..........是一个组合),明白吗,就是组合成的确数组只要数字一样就算是一个组合 展开
3个回答
展开全部
C10,5=10!/5!/(10-5)!
!表示阶乘 5!=1*2*3*4*5
三个for循环搞定
main ()
{
int i,iOut,itmp,itmp1,itmp2;
itmp=1;
for (i=1;i<=10;i++) //10的阶乘
itmp=itmp * i;
itmp1=1;
for (i=1;i<=5;i++) //5的阶乘
itmp1=itmp1 * i;
itmp2=1;
for (i=1;i<=10-5;i++) //10-5的阶乘
itmp2=itmp2 * i;
iOut = itmp/itmp1/itmp2; 结果
}
!表示阶乘 5!=1*2*3*4*5
三个for循环搞定
main ()
{
int i,iOut,itmp,itmp1,itmp2;
itmp=1;
for (i=1;i<=10;i++) //10的阶乘
itmp=itmp * i;
itmp1=1;
for (i=1;i<=5;i++) //5的阶乘
itmp1=itmp1 * i;
itmp2=1;
for (i=1;i<=10-5;i++) //10-5的阶乘
itmp2=itmp2 * i;
iOut = itmp/itmp1/itmp2; 结果
}
2009-04-16
展开全部
如果你要求组合的数目的话
就是下面这个程序,已经调试过了,是对的
#include<stdio.h>
void main()
{
int i,n=1,r=1;
for(i=1;i<11;i++) n*=i;
for(i=1;i<6;i++) r*=i;
printf("组合数:%d",n/(r*r));
}
就是下面这个程序,已经调试过了,是对的
#include<stdio.h>
void main()
{
int i,n=1,r=1;
for(i=1;i<11;i++) n*=i;
for(i=1;i<6;i++) r*=i;
printf("组合数:%d",n/(r*r));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的意思是得到任意5个数字的组合么?
#define NUM_CNT 10
#define NUM_SEL 5
int nums [NUM_CNT];
void get_numbers (void)
{
int i;
for (i = 0; i < NUM_CNT; i++)
{
printf("input %dth number:", i+1);
scanf("%d", &nums[i]);
}
}
void select_numbers (void)
{
int i, sel;
char str[12];
char result[1024] = {0};
for (i = 0; i < NUM_SEL; i++)
{
sel = rand()%NUM_CNT;
itoa(nums[sel], str, 10);
strcat(result, str);
}
printf("select %d numbers and the result is %s\n", NUM_SEL, result);
}
void main (void)
{
get_numbers();
select_numbers();
}
#define NUM_CNT 10
#define NUM_SEL 5
int nums [NUM_CNT];
void get_numbers (void)
{
int i;
for (i = 0; i < NUM_CNT; i++)
{
printf("input %dth number:", i+1);
scanf("%d", &nums[i]);
}
}
void select_numbers (void)
{
int i, sel;
char str[12];
char result[1024] = {0};
for (i = 0; i < NUM_SEL; i++)
{
sel = rand()%NUM_CNT;
itoa(nums[sel], str, 10);
strcat(result, str);
}
printf("select %d numbers and the result is %s\n", NUM_SEL, result);
}
void main (void)
{
get_numbers();
select_numbers();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |