失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > c语言程序排列与组合 C语言实现排列/组合算法

c语言程序排列与组合 C语言实现排列/组合算法

时间:2023-09-21 13:11:10

相关推荐

c语言程序排列与组合 C语言实现排列/组合算法

该楼层疑似违规已被系统折叠隐藏此楼查看此楼

/*

*文件名:Permutation.c

*用途:全排列算法

*编程环境:WinXPSP2+CL8.0

*完成日期:.2Ver0.01

*作者:88250

*联系方式:E-mail:DL88250@QQ:845765

*/

#include

#include

intcount=0;

voidpermutation(charper[],intm,intlen)

{

inti;

chartmp;

if(m

permutation(per,m+1,len);

for(i=m+1;i

/*选当次的排列“头”*/

tmp=per[m];

per[m]=per[i];

per[i]=tmp;

permutation(per,m+1,len);

/*恢复上一次的排列*/

tmp=per[m];

per[m]=per[i];

per[i]=tmp;

}

}else{

++count;/*对排列进行计数*/

/*调整一下格式^^*/

printf("%s",per);

}

return;

}

intmain(void)

{

inti=time(NULL);

charper[]="ABCD";

permutation(per,0,strlen(per));

printf("Thetotal:%d",count);

return0;

}

/*

*文件名:Combination.c

*用途:组合算法

*编程环境:WinXPSP2+CL8.0

*完成日期:.2Ver0.01

*作者:88250

*联系方式:E-mail:DL88250@QQ:845765

*/

#include

#defineMAX_NUM20

intcomb[MAX_NUM];

voidcombination(intm,intn)

{

inti,j;

for(i=m;i>=n;i--){

comb[n]=i;/*选择当前的“头”元素*/

if(n>1){

/*进入下一次更小的组合问题*/

combination(i-1,n-1);

}else{

/*满了需要的组合数,输出*/

for(j=comb[0];j>0;j--){

printf("%c",comb[j]+64);

}

printf("");

}

}

return;

}

intmain(intargc,char*argv[])

{

comb[0]=2;

combination(4,comb[0]);/*C(4,2)*/

return0;

}

如果觉得《c语言程序排列与组合 C语言实现排列/组合算法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。