Pascal递归白痴问题~ 超级简单的 输出子集 问题
我是一个算法白痴,找高手示范解决超级简单的题目~问题:输入n,输出集合{1,2,……,n}的所有子集。输入示范:3输出示范:{}{3}{2}{2,3}{1}{1,3}{1...
我是一个算法白痴, 找高手示范解决超级简单的题目~ 问题:输入n,输出集合{1,2,……,n}的所有子集。 输入示范: 3 输出示范: { } {3} {2} {2,3} {1} {1,3} {1,2} (1,2,3) 谢谢了
展开
1个回答
展开全部
program digui; var n:longint; s:array[1..1000]of longint; procedure print(l:longint); var i:longint; begin write('{'); for i:=1 to l-1 do write(s[i],','); writeln(s[l],'}'); end; procedure dfs(k,p:longint); var t:longint; begin t:=s[p]; s[p]:=k; if k<n then dfs(k+1,p); print(p); if k<n then dfs(k+1,p+1); s[p]:=t; end; begin readln(n); fillchar(s,sizeof(s),0); s[1]:=1; dfs(1,1); end. 已经在电脑上测试过,有问题的话加我qq
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询