c语言编程排列组合

c语言编程怎么编写Cmn?比如C51等于5等于C54... c语言编程怎么编写Cmn?比如C51等于5等于C54 展开
 我来答
tattackor
推荐于2017-10-08 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:930万
展开全部

1、求排列组合没有简单方法。方法只有一个,枚举。有几个位置需要列举,就需要几个循环。如果循环数量太多,可以用函数递归来枚举。
2、例程:

    #include<stdio.h>
    int main(){
        int a[4]={1,3,4,7};        //第一个位置
        int b[4]={2,5,8,10};    //第二个位置
        int c[4]={6,9,11,12};    //第三个位置
        int i,j,k;
        for(i=0;i<4;i++)
        for(j=0;j<4;j++)
        for(k=0;k<4;k++)
           printf("%d %d %d\n,",a[i],b[j],c[k]);//输出一种排列
        getch();
        return 0;
    }
光辉27GM
2014-09-04 · TA获得超过126个赞
知道答主
回答量:112
采纳率:50%
帮助的人:112万
展开全部
void Show(int n,int len ,char str[], char p[],int *i){/*函数功能说明:     密码穷举法 递归算法参数说明:len 密码可选元素的个数,实际等于 strlen(str); n 密码位数。 STR[]密码表。 *p 密码排列组合的临时存档*/int a;n--;for(a=0; a < len; a++){p[n]=str[a]; if(n==0)printf("%d:%s ",(*i)++,p); if(n0)Show(n,len , str,p,i);}} /*驱动程序 用于测试*/ int main(void){char str[]="abcdef";//密码表 可选元素集合可根据选择修改 int n=4;//密码位数,根据具体应用而定。 int len=strlen(str);//用于密码元素集合计数。 char p[20];//存放排列组合的密码,用于输出。 int num=0;//存放统计个数的整数值, int *i=&num;//计数器 地址。 p[n]='\0';//这个不用说啦。 printf("\n%d 位密码,每个密码有%d个选择的话,共有:%d个组合。\n",n,len,*i);return 0;}
以上回答你满意么?
追问
给个完整的程序,输入mn的值,直接可以得到答案!多谢,急用!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我回来了调用
2014-09-05 · TA获得超过388个赞
知道小有建树答主
回答量:772
采纳率:0%
帮助的人:479万
展开全部
了解一下字符和数值表达的关系, 以及字串操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Constroy
2014-09-04 · TA获得超过134个赞
知道答主
回答量:61
采纳率:0%
帮助的人:42.4万
展开全部
杨辉三角
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4707e5b
2014-09-04 · 超过29用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:52.1万
展开全部
是编写函数算排列组合还是直接替换看到Cmn就变成数字啊
更多追问追答
追问
输入mn的值就可以得到答案!
追答

那直接就写个函数

int c(int m, int n){
   if(m<=0 || m < n) return 0;
    if(n ==0) return 1;
   int result = m;
   for(int i = m - 1,j = n; i> j; i-- ){
   result *= i;
   }
   
   int temp = 1;
   for(int i = 1; i <=n; i++){
   temp *=i;
   }
   return result /  temp;
   
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式