HDU 1342 Lotto dfs
http://acm.hdu.edu.cn/showproblem.php?pid=1342
题意:给出K(k>=6)个数,从中选出6个数,按字典序输出所有的情况
代码:
注意输出格式
#include<iostream> #include<cstdio> #include<string> #include<cstring> using namespace std; int n,ans; int a[15],b[8]; void print() { int i; for(i=1;i<6;i++) printf("%d ",b[i]); printf("%d\n",b[i]); } void dfs(int dep) { if(ans==6){print();return ;} if(dep>n)return; b[++ans]=a[dep]; dfs(dep+1); ans--; dfs(dep+1); } int main() { int i,ca=0; while(~scanf("%d",&n)) { if(n==0)break; if(ca)printf("\n"); ca++; for(i=1;i<=n;i++) scanf("%d",&a[i]); ans=0; dfs(1); } return 0; }