Backtracking
#include <stdio.h>
#include <stdbool.h>
int k, num[12], ans[6];
void dfs(int depth, int n)
{
int i;
if (depth >= 6)
{
printf("%d", ans[0]);
for (i = 1; i < 6; i++)
printf(" %d", ans[i]);
puts("");
return;
}
for (i = n; i < k; i++)
{
ans[depth] = num[i];
dfs(depth+1, i+1);
}
}
int main(void)
{
int i;
bool flag = false;
while (scanf("%d", &k) == 1 && k)
{
if (flag)
putchar('\n');
for (i = 0; i < k; i++)
scanf("%d", &num[i]);
dfs(0, 0);
flag = true;
}
return 0;
}
沒有留言:
張貼留言