用递归和位移进行枚举子集合
来源:互联网 发布:科比1415赛季数据 编辑:程序博客网 时间:2024/06/07 15:40
#include <stdio.h>#define N 4int arry[N];void recursive (int a[], int n){ if ( n == N) { int i; for(i = 0; i < N; ++i) printf("%d ",a[i]); printf("\n"); return ; } a[n]=0; recursive(a, n+1); a[n]=1; recursive(a, n+1);}void bitShift (int a){ for(int i = 0; i < N; ++i) { printf("%d ",a&1); a >>= 1; } printf("\n");}int main(){ printf("递归结果:\n"); recursive(arry, 0); int i = 0; printf("位移结果:\n"); for(i = 0; i< (1 << N); ++i) bitShift(i); return 0;}
这里面我只用到了4个元素的集合,当然这里的元素个数是自己去定义的。
下面是程序运行的结果图:
0 0
- 用递归和位移进行枚举子集合
- C++ 递归艺术----求任意集合的幂集组合和子集合的总个数
- 递归计算一个集合的所有子集合
- 位移枚举
- 位移枚举
- 位移枚举
- 枚举子集
- 枚举子集
- 枚举子集
- 枚举子集
- 枚举和递归
- 能划分两子集合,每个集合的和相等
- 回溯法实现求解子集合和问题
- 字符串子集合
- 子集合(算法)
- 穷举子集合
- 子集合的构造
- 子集合问题
- 分析ASP.NET服务器控件开发-控件生命周期
- 策略模式
- 百度暑期实习一面
- shiro学习笔记-1 环境搭建
- mscorwks.dll在.Net中的地位
- 用递归和位移进行枚举子集合
- 【雕程晓技】绘制质感游戏图标UI教程之捏泡泡
- 我的网易博客地址
- GCJ Round1A Charging Chaos
- 关于 IE 模态对话框的两个问题
- 每天一个linux命令目录
- 私奔!你敢吗?
- 单个文件使用ARC
- c++之ctype.h