回溯黑历史
#include <stdio.h> int n,r; //n种自然数 r是个数 int rec[100]; void output() { int i; for(i=1;i<=r;i++) printf("%d ",rec[i]); printf("\n"); } void To(int s,int g) //s是首个数 g是个数 { if(g==r+1) output(); else { int i; for(i=s+1;i<=n;i++) { rec[g]=i; To(i,g+1); } } } int main() { scanf("%d%d",&n,&r); To(0,1); return 0; }