试编写一个递归函数,用来输出n个元素的所有子集。例如,三个元素{a,b,c}的所有子集是:{}(空集),{a}, {b}, {c}, {a,b}, {a,c}, {b,c} 和{a,b,c}。
void Subsets(int i)

{// Output all subsets of x[1:n].

// Only x[i:n] to be changed.

if (i == n) {&#

展开全部
收起
4回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Cathy云

    18人对此回答表示赞同

    #include <stdio.h>
    #include <string.h>
    int used[1024];

    void dfs(char *s, int pos, int len)
    {
    int i;
    if (pos == len)
    {
    printf("{");
    for (i = 0; i < le
    展开
    18
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Christopher

    11人对此回答表示赞同

    void dfs(int x)
    {
    输出集合;
    把x放进集合;
    for (i=x+1;i<=n;i++) dfs(i);
    把X拿出集合;
    return;
    }
    其实可以用2进制来枚举。
    1010010,第i位代表第i个数是否在集合内。位运算的效率是比较高的。
    展开
    11
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Christian

    11人对此回答表示赞同

    内牛满面,数据结构啊。
    展开
    11
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 榛子

    11人对此回答表示赞同

    看了楼主的要求:用递归函数和一楼的:数据结构,我不是很懂C++,这个问题应该可以用普通方法实现吧。等待高手用递归、、、
    展开
    11
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部