组合数的生成—FS)
#include <iostream>#include <cstdio>#define maxn 10000using namespace std;int b[maxn];int r, n;void dfs(int lev, int p){ int i, j; if(lev > r){ for(i = 1; i <= r; i++){ printf("%d ", b[i]); } printf("\n"); return ; } for(j = p; j <= n; j++){ b[lev] = j; dfs(lev+1, j+1); } return ;}int main(){ while(scanf("%d%d", &n, &r)!=EOF){ dfs(1, 1); } return 0;}