组合数从小到大
题目:
输入T(测试数据的组数),n,m,从1到n 中找 x ( x<= m && x >= 1)个数组成一个 m 位数,把所有的m位数从小到大输出。
输入:
1
2 2
输出:
11
12
21
22
我的代码:
#include<stdio.h>
#include<string.h>
void fun(int n,int k);
int a[10];
int main()
{
int T,n,m;
scanf("%d",&T);
getchar();
do
{
scanf("%d%d",&n,&m);
a[0] = m;//记录排列的长度
fun(n,m);
}while(--T);
// system("pause");
return 0;
}
void fun(int n,int k)
{
int i,j;
for(i = 1 ; i <= n ; ++i)
{
a[k] = i;
if(k > 1)
fun(n,k-1);//每个位置上的数都得从1开始
else
{
for(j = a[0] ; j > 0 ; --j)
printf("%d",a[j]);
printf("\n");
}//else
}//for(i)
}

浙公网安备 33010602011771号