给出最多13个数,从中选出6个数(升序)
给出所有方案(升序输出)
DFS水题
#include <cstring> #include <cstdio> #include <algorithm> using namespace std; const int N = 10; const int M = 16; int ans[N]; int a[M]; int n; void dfs(int id, int pre){ if(id == 6) { for(int i = 0; i < 6; i++) printf("%d%c", ans[i], i == 5 ? ' ' : ' '); return ; } if(pre == n) return; ans[id] = a[pre + 1]; dfs(id + 1, pre + 1); dfs(id, pre + 1); } int main(){ int i; bool newline = false; while(scanf("%d", &n) &&n){ if(newline) printf(" "); for(i = 1; i <= n; i++){ scanf("%d", &a[i]); } newline = true; dfs(0, 0); } }