| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 780 人关注过本帖
标题:求助一道用递归产生非重复生成全子集组合排列(含重复数字时,生成不重复全 ...
只看楼主 加入收藏
zhengjieyang
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-2-24
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
求助一道用递归产生非重复生成全子集组合排列(含重复数字时,生成不重复全子集组合排列)代码解释
01.#include <iostream>   
02.using namespace std;  
03.const int len=10;  
04.int n;  
05.int num;//不重复的实际个数   
06.int mat[len];  
07.int result[len];  
08.int used[len];  
09.void push(int varNum);  
10.void solve(int cur_totalVar,int nextVar);  
11.int main()  
12.{  
13.    cin>>n;  
14.    num=0;  
15.    int var;  
16.    for (int i=0;i<n;i++)  
17.    {  
18.        cin>>var;  
19.        push(var);  
20.    }  
21.    solve(0,0);  
22.    system("pause");  
23.    return 1;  
24.}  
void push(int varNum)  
35.{  
36.    for (int i=0;i<num;i++)  
37.    {  
38.        if (mat[i]==varNum)  
39.        {  
40.            used[i]++;  
41.            return;  
42.        }  
43.    }  
44.    mat[num]=varNum;  
45.    used[num]++;  
46.    num++;  
47.}  
                void solve(int cur_totalVar,int nextVar)  
62.{  
63.    for (int i=0;i<cur_totalVar;i++)  
64.    {  
65.        cout<<result[i];  
66.    }  
67.    cout<<endl;  
68.    for (int i=nextVar;i<num;i++)  
69.    {  
70.        if (used[i])  
71.        {  
72.            result[cur_totalVar]=mat[i];  
73.            used[i]--;  
74.            solve(cur_totalVar+1,i);  

void solve函数代码解释,最好写过程
搜索更多相关主题的帖子: 数字 mat include system return 
2012-02-24 14:09
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:20 
先去重 然后再去生成组合数

                                         
===========深入<----------------->浅出============
2012-02-24 15:44
快速回复:求助一道用递归产生非重复生成全子集组合排列(含重复数字时,生成不重 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019512 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved