组合数(方法2)由大到小输出

来源:互联网 发布:js 多维数组排序 编辑:程序博客网 时间:2024/06/17 05:16
#include<stdio.h>//int make_sign[10];//标记数组,如:make_sign[1]=0表示 1这个数字没有走过int number[10];//用来存 数字 number[3]=1;表示输出的第三个数是1int n,r;//n:一共有几个数,相当于每次走有几个路径可以选择void combination(int m ,int n)//从m个数里选 n个数{int i;if(n == 0){for(i = r; i >= 1; i --)printf("%d",number[i]);printf("\n");}else{for(i = m; i >= n; i --)//如从比较大的5个数里选3个数,以从5选 3为例,那么范围就是 5~3,即5>=3;{number[n] = i;combination(i - 1, n -1);}}}int main (){number[0] = 0;scanf("%d%d",&n,&r);combination(n, r);return 0;}

原创粉丝点击