题意:给你n个数,求出所有6个数的组合数
分析:dfs
View Code
#include <cstdio> #include <cstring> #include <iostream> using namespace std; int b[30]; int a[10]; int n; void Output() { printf("%d",b[a[0]]); for(int i=1;i<6;i++) printf(" %d",b[a[i]]); printf("\n"); } void dfs(int dep,int num) { if(dep>=6) { Output(); return; } if(num>=n || (n-num)+dep<6) return; a[dep] = num; dfs(dep+1, num+1); dfs(dep , num+1); } int main() { while(~scanf("%d",&n) && n) { for(int i=0;i<n;i++) scanf("%d",&b[i]); dfs(0,0); printf("\n"); } return 0; }