Tanky WooRSS

POJ 2245 Lotto

08 Jul 2010
这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。

经典的递归问题,递归+回溯解决。

注意代码中select_combination()的应用

// POJ 2245
// Tanky Woo
// www.wutianqi.com
#include  
#include  
using namespace std;  
int num[14];  
int lotto[14];  
int n,cnt; 

void select_combination(int current,int p)//递归填充数并打

印组合,相当于DFS过程  
{
    int i;
    if(6 == current)
    {
        for(i = 0; i < 6; ++i)
            printf("%d ", lotto[i]);
        printf("\n");
    }
    else
    {
        for(i = p; i < n; ++i)
        {
            lotto[current] = num[i];
            select_combination(current+1, 

i+1);
        }
    }
}

// www.wutianqi.com
int main()  
{  
    //freopen("in.txt","r",stdin);  
    bool first = 1;  
    while(scanf("%d",&n;) && n)  
    {  
        if(!first)  printf("\n");  
        first = 0;  

        for(int i = 0;i < n;++i)  
            scanf("%d",&num;[i]);  
        select_combination(0,0);//递归调用从0 0开始  
    }  
    return 0;  
}