hdu 1342
地址:http://acm.hdu.edu.cn/showproblem.php?pid=1342
题意:从给定的集合里面选出6个数字按顺序输出。把所有的选择都输出。
mark:直接dfs就好了。
代码:
# include <stdio.h>
int k ;
int num[20] ;
int ans[6] ;
void dfs(int idx, int n)
{
int i ;
if (n == 6)
{
for(i = 0 ; i < n ; i++)
if (i == 0) printf("%d",ans[i]) ;
else printf (" %d", ans[i]) ;
printf ("\n") ;
return ;
}
for (i = idx ; i < k + n - 5; i++)
{
ans[n] = num[i] ;
dfs(i+1,n+1) ;
}
}
int main ()
{
int i ;
int flag = 0 ;
while (~scanf ("%d", &k),k)
{
for(i=0;i<k;i++) scanf("%d", &num[i]) ;
if (flag == 0) flag = 1;
else printf ("\n") ;
dfs (0,0) ;
}
return 0 ;
}