用c语言怎么实现排列组合啊?比如从100个数里面任意选出5个数,即C100 5……

也不知道各位大侠听明白我说什么了没有……要源代码!很急!!... 也不知道各位大侠听明白我说什么了没有……要源代码!很急!! 展开
 我来答
夜游神小翠
2011-12-26 · TA获得超过1795个赞
知道小有建树答主
回答量:416
采纳率:0%
帮助的人:178万
展开全部
#include<stdio.h>
void main()
{
int n = 100;
int m = 5;
int n1 = 1, m1 = 1;
for(int i = 1; i <= m; i++)
{
n1 *= n - i + 1;
m1 *= i;
}
n1 = n1/m1;
printf("C100 5 = %d\n",n1);
}
从n中选出m个,只要改变n和m的值即可,VS2010下测试通过。
追问
我不是想要得到一共有多少种情况,我是想知道所有的组合。
追答
不好意思哈,没有及时看到你的追问。如果要得到所有组合的话,程序如下:
#include
void main()
{
int a[100];
for(int b = 0; b < 100; b++)
a[b] = b + 1;
int i,j,k,x,y;
printf("所有的组合有:\n");
for(i=0;i<96;i++)
{
for(j=i+1;j<97;j++)
{
for(k=j+1;k<98;k++)
{
for(x=k+1;x<99;x++)
{
for(y=x+1;y<100;y++)
printf("%d %d %d %d %d\n",a[i],a[j],a[k],a[x],a[y]);
}
}
}
}
}
要执行很久很久。。。因为C100 5是个很大的数
ntlyb
2011-12-27 · 超过32用户采纳过TA的回答
知道答主
回答量:127
采纳率:0%
帮助的人:70.6万
展开全部
我看到一篇论文跟你的问题很相似,我们可以讨论讨论,说不定能帮到你,私聊吧,呵呵
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式