集合幂集
2015-08-08 19:44
1106 查看
备忘用
#include <iostream> #include <cstring> using namespace std; const int MAX_LENGTH = 100; /* 求幂积最简单的算法思想就是从最后一个元素倒着来遍历所有元素,比如说最后一个就是自己"c" ; 倒数第二个:首先把自己和幂积里面已有的所有元素做乘积("bc"),然后加到幂积里,此时为{c,bc};最后再加上自己"b",{b,c,bc} 倒数第三个:把自己(a)和幂积中所有元素做乘积{ab,ac,abc},加到幂积集合中,此时幂积中为:{b,c,bc,ab,ac,abc};最后再加上自己本身"a",为:{a,b,c,bc,ab,ac,abc}. */ /*str为输入的字符串,i为正在处理的字符,res为存储结果,num统计共有多杀个幂集*/ void tatalsubset(char *str,int i,char *res,int &num) { char tmp[MAX_LENGTH]; strcpy(tmp,res); if(i >= strlen(str)) { for(int i = 0; i < strlen(res); i++) cout << res[i]; cout << endl; num++; } else { tatalsubset(str,i + 1,tmp,num); strncat(tmp,(str + i),1); tatalsubset(str,i + 1,tmp,num); } } int main() { char *str = "ABC"; char *res = new char[MAX_LENGTH]; memset(res,0,sizeof(char) * MAX_LENGTH); int num = 0; tatalsubset(str,0,res,num); return 0; }
相关文章推荐
- CVTE内推面试(c++)
- [leetcode] Search Insert Position
- Linux目录结构
- liuux基本命令
- HDU 2852 线段树(查询有序位置)
- Code Forces 26A Almost Prime
- CodeForces 445A
- 可重定位目标文件
- C++(19)类与数据抽象
- Android Studio:Multiple dex files define Landroid/support/annotation/AnimRes
- 可重定位目标文件
- [leedcode 236] Lowest Common Ancestor of a Binary Tree
- jftp 解决中文乱码。支持中文
- zend studio快捷键
- Codeforces Gym100286G Giant Screen (暴力)
- Win7 x64 系统环境下配置VS2013&PCL1.7.2
- iOS 读书笔记-国际化
- 解决wampserver + laravel无法访问自定义路由
- ThinkPHP下SMTP的发送邮件
- Codeforces Gym H. Hell on the Markets 贪心