题目:
输入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) }