列出所有子集(二进制递增方式)
来源:互联网 发布:网络祭奠 编辑:程序博客网 时间:2024/05/24 23:11
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 20
#define LOOP 1
void main(void)
{
char digit[MAXSIZE];
int i, j;
int n;
char line[100];
printf("\nDirect Generation of All Subsets of a Set");
printf("\n=========================================");
printf("\n\nNumber of Elements in the Given Set --> ");
gets(line);
n = atoi(line);
/* ---You'd better check to see if n is too large--- */
for (i = 0; i < n; i++) /* clear all digits to 0 */
digit[i] = '0';
printf("\n{}"); /* outpout empty set {} */
while (LOOP) {
for (i = 0; i < n && digit[i] == '1'; digit[i] = '0', i++)
; /* find first 0 position */
if (i == n) /* if none, all pos. are 1 */
break; /* thus all elem. are in set*/
else
digit[i] = '1';/* now add one to this pos */
for (i = 0; i < n && digit[i] == '0'; i++)
; /* find first 1 position */
printf("\n{%d", i+1); /* show its numner and */
for (j = i + 1; j < n; j++) /* others */
if (digit[j] == '1')
printf(",%d", j + 1);
printf("}");
}
}
- 列出所有子集(二进制递增方式)
- 列出所有子集(字典顺序)
- 列出所有子集(格雷码顺序)
- 列出所有子集
- 列出所有K个元素的子集
- 每日一小练——列出所有子集
- 列出{1,2,,,,n}的所有子集
- 二进制输出所有的子集
- 求一个集合的所有子集(二进制实现)
- 运用二进制生成集合的所有子集
- 求一个二进制数的(二进制表示)的所有子集
- 列出一个集合的所有非空子集
- 列出所有子集----------2013年1月3日
- 每日一小练——按字典顺序列出所有子集
- 列出所有子集(采用列出2进制数的方法)-------------2013年1月4日
- (用二进制的思路)给定一个集合S,打印出集合所有的子集
- 所有子集
- 列出所有子集-----字典顺序 2013年1月14日
- ext操作及页面排版布局
- 控制台程序调试时一闪而过解决办法
- Detecting When A User Blows Into The Mic
- Tasks and Back Stack
- 让你提升命令行效率的 Bash 快捷键 [完整版]
- 列出所有子集(二进制递增方式)
- 让IE 支持 html5
- 好的网站
- 行为驱动开发之一,推广篇
- Google +1对搜索引擎优化的影响
- pageContext.request.contextPath
- Ajax异步访问远程服务并设置超时
- 手把手教你玩转SOCKET模型之重叠I/O篇
- 列出所有子集(字典顺序)