HOJ 1442 -- Lotto 最简单的DFS

HOJ 1442 -- Lotto 最简单的DFS
由小到大给出若干个数,输出所有六元子序列(升序)
 1  #include  < cstdio >
 2 
 3  int  store[ 6 ], num,  in [ 15 ];
 4  void  output()
 5  {
 6      printf( " %d %d %d %d %d %d\n " , store[ 0 ], store[ 1 ], store[ 2 ], store[ 3 ], store[ 4 ], store[ 5 ]);
 7  }
 8  void  dfs( int  from,  int  now)
 9  {
10       int  i;
11       if (now  ==   6
12      {
13          output();
14           return ;
15      } 
16       for (i  =  from; i  <=  num  -   6   +  now; i ++ )
17      {
18          store[now]  =   in [i];
19          dfs(i  +   1 , now  +   1 );
20      }
21  }
22  int  main()
23  {
24       int  start  =   0 ;
25       int  i;
26      
27       while (scanf( " %d " , & num)  ==   1   &&  num)
28      {
29           if (start) printf( " \n " );
30          start  =   1 ;
31           for (i  =   0 ; i  <  num; i ++ ) scanf( " %d " & in [i]);
32          dfs( 0 0 );
33      }
34       return   0 ;
35  }

你可能感兴趣的:(HOJ 1442 -- Lotto 最简单的DFS)