主题:我有个TP的题,告诉我了加50分!~~(很简单的)
zhaoren
[专家分:420] 发布于 2005-09-04 17:03:00
给出任一个由字符为元素的集合,输出他的所有子集~[em18][em18][em18]
回复列表 (共4个回复)
沙发
lzl1403 [专家分:1670] 发布于 2005-09-09 20:38:00
一个可行的穷举方法:
循环穷举二进制数:0、1、10、11、100、101……
然后把字符与二进制数对号入座,若这一位的数字为0则加入到集合里,然后输出集合,清空集合,继续循环……
板凳
阿Ben [专家分:2200] 发布于 2005-09-09 22:22:00
不错,穷举二进制数就行了
3 楼
xpycc [专家分:410] 发布于 2005-09-10 15:09:00
type ay=array[1..1000]of char; //定义数据类型
procedure jiu(i,j:integer;p,set:ay;n:integer);
{set:由字符为元素的集合,n:集合长度,p:上一步结果,
i、j:有用的Integer,外部调用时都传1作为他们的参数}
var k:integer;
begin
while i<=n do
begin
p[j]:=set[i];
i:=i+1;
write('(');
for k:=1 to j-1 do write(p[k],',');
write(p[j]);
writeln(')'); //打印到屏幕,你也可以换成其他方式输出
pos(i,j+1,p,set1,n);
end;
end;
4 楼
zhaoren [专家分:420] 发布于 2005-09-22 21:02:00
我的题之所以这么这么这么……简单,是我穷举都没学好啊~
我来回复