CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

求出一个整数组成的集合的所有子集的算法

楼主sms88(白板http://shop34112882.taobao.com)2005-02-04 19:25:26 在 C/C++ / C++ 语言 提问

用伪码做答 问题点数:50、回复次数:8Top

1 楼pcboyxhy(-273.15℃)回复于 2005-02-04 20:06:09 得分 50

#include<iostream>  
  using   namespace   std;  
  int   str[]={1,2,3,4,5,6,7};  
  bool   bo[7];  
  long   xnum=0;  
  int   print(int   i)  
  {  
      if(i>=7)  
      {  
          int   j,k=0;  
          ++xnum;  
          cout<<"No."<<xnum<<'=';  
          cout<<"{";  
          for(j=0;   j<7;   j++)  
          if(bo[j])  
          {  
              if(k)  
              cout<<',';  
              cout<<str[j];  
              ++k;  
          }  
          cout<<"}"<<endl;  
          return   0;  
      }  
      else  
      {  
          bo[i]=true;  
          print(i+1);  
          bo[i]=false;  
          print(i+1);  
      }  
      return   0;  
  }  
  int   main(   int   argc,   char   *   argv[]   )  
  {  
      print(0);  
      return   0;  
  }  
   
   
   
  /*  
  int   print(int   i)  
  {  
      if(i>=7)                                     i>=7   就输出结果中的一个  
      {  
          int   j,k=0;  
          ++xnum;  
          cout<<"No."<<xnum<<'=';  
          cout<<"{";  
          for(j=0;   j<7;   j++)  
          if(bo[j])  
          {  
              if(k)  
              cout<<',';  
              cout<<str[j];  
              ++k;  
          }  
          cout<<"}"<<endl;  
          return   0;  
      }  
      else                                                               i<7就继续下一个数  
      {  
          bo[i]=true;                                                 第i个元素放入集合中并继续  
          print(i+1);  
          bo[i]=false;                                                 第i个元素不放入集合中  
          print(i+1);  
      }  
      return   0;  
  }  
   
   
   
   
  */Top

2 楼pcboyxhy(-273.15℃)回复于 2005-02-04 20:07:22 得分 0

bool   bo[7];     //bo[i]用来标志第i个元素是否放入子集  
  Top

3 楼sms88(白板http://shop34112882.taobao.com)回复于 2005-02-04 20:08:11 得分 0

用伪码吧,要不然我会看得头痛Top

4 楼pcboyxhy(-273.15℃)回复于 2005-02-04 20:14:32 得分 0

从数组第一个元素开始,依次执行如下操作。  
  判断:如果超出数组的元素个数了,就输出结果并回溯  
   
  1.将当前元素标记为放入子集,递规调用进行下一个元素的处理。  
  2.将当前元素标记为不放入子集,递规调用进行下一个元素的处理。(此时已经回溯了   这个当前元素和1里面的是一样的)  
  Top

5 楼oo(为了名副其实,努力学习oo技术ing)回复于 2005-02-04 20:35:28 得分 0

夏雪?Top

6 楼sms88(白板http://shop34112882.taobao.com)回复于 2005-02-04 21:01:58 得分 0

夏雪  
  你认识?Top

7 楼oo(为了名副其实,努力学习oo技术ing)回复于 2005-02-04 21:19:41 得分 0

我认识一个叫夏雪的Top

8 楼sms88(白板http://shop34112882.taobao.com)回复于 2005-02-07 14:22:51 得分 0

那你是哪个学校的?Top

相关问题

  • 用java做一个“求集合子集的”算法。
  • ( winform ) 集合A是集合B的子集,C#什么算法可以求出 B-A ???
  • 求子集算法
  • 请教关于求子集的算法
  • 正整数拆分算法
  • 如何在Delphi中实现求某一集合的子集
  • 怎样生成一个集合的所有子集?
  • 求一个正整数的位数,求最优算法和最简短算法
  • 请问在SQL里面怎么判断一个集合是不是另一个集合的子集合?
  • 求将任意长字符串转换成整数的算法

关键词

  • xnum
  • cout

得分解答快速导航

  • 帖主:sms88
  • pcboyxhy

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo