组合(n选k问题)
#include "iostream.h" #include "string.h" int a[100]; void dfs(int n,int k) { if (k==0) { for (int i=1;i<=a[0];i++) cout<<a[i]<<'\t'; cout<<endl;return; } for (int i=n;i>=k;i--) { a[k]=i; dfs(i-1,k-1); } } void main() { memset(a,0,sizeof(a)); a[0]=3; dfs(5,3); }