大乐透

东北林业大学 OJ 题源

description

在小明曾经玩过的一种对号码的纸牌游戏(乐透)里,玩家必须从{1,2,……,49}中选择6个数。玩Lotto的一个流行策略是(虽然它并不增加你赢的机会):就是从这49个数中,选出k(k>6)个数组成一个子集S,然后只从S里拿出牌来玩几局游戏。例如,k=8,s={1,2,3,5,8,13,21,34},那么有28场可能的游戏:[1,2,3,5,8,13],[1,2,3,5,8,21],[1,2,3,5,8,34],[1,2,3,5,13,21],……,[3,5,8,13,21,24]。
读取数字k和一组数S,输出由S中的数组成的所有可能的游戏。

							

input

输入数据有多组,每组一行,每行有多个整数,其中第一个整数为数字k,接下来有k个整数,即子集S。当k为0,输入结束。
							

output

输出由S中的数组成的所有可能的游戏。每种游戏一行。
							

sample_input

7 1 2 3 4 5 6 7
0

							

sample_output

1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 6 7
1 2 3 5 6 7
1 2 4 5 6 7
1 3 4 5 6 7
2 3 4 5 6 7

首先声明,这道题不是我做出来的! 虽然知道题目很简单但是我就是想不出如何实现,唉~~  我终于知道我有多渣了,不服不行,自己真的好弱啊!!!!

废话少说,请看代码:

#include 
#include 
#include 
#include 
using namespace std;
int main()
{
    int a[49],i,n,b,c,d,e,f;
    while(~scanf("%d",&n)&&n)
    {
        for(i=0;i


你可能感兴趣的:(暴力和枚举)