位运算:求子集

简介: 题目描述:利用递归方法生成具有n个元素的集合的所有子集。输入:

题目描述:

利用递归方法生成具有n个元素的集合的所有子集。

输入:

第一行1有一个数字n,0<n<10。第二行有n个数字,代表集合中的数。

输出:

按照集合的格式这个集合所有自己的所有元素,每个子集占一行。


分析:

这道题用到了位运算,废话不多说,上代码:

include

include

using namespace std;

int main(void)

{

int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<(1<<n);i++)
{
vector<int> arr;
for(int j=0;j<n;j++)
    {
if(i&(1<<j))
        {
            arr.push_back(a[j]);
        }
    }
cout<<"{";
for(int j=0;j<arr.size();j++)
    {
int s=arr[j];
if(j!=arr.size()-1)
        {
cout<<s<<" ";
        }else{
cout<<s;
        }
    }
cout<<"}";
cout<<endl;
}
return 0;

}

目录
相关文章
|
21天前
|
算法
数据结构和算法——散列函数的构造方法(直接定址法、除留余数法、数字分析法、折叠法、平方取中法、ASCII码加和法、前三字符移位法)
数据结构和算法——散列函数的构造方法(直接定址法、除留余数法、数字分析法、折叠法、平方取中法、ASCII码加和法、前三字符移位法)
12 0
|
1月前
|
机器学习/深度学习 算法 测试技术
【位运算 子集状态压缩】982按位与为零的三元组
【位运算 子集状态压缩】982按位与为零的三元组
【位运算 子集状态压缩】982按位与为零的三元组
|
1月前
|
存储 算法 测试技术
位运算、状态压缩、枚举子集汇总
位运算、状态压缩、枚举子集汇总
|
1月前
|
人工智能 测试技术
【位运算 状态压缩 枚举子集】1178. 猜字谜
【位运算 状态压缩 枚举子集】1178. 猜字谜
|
1月前
|
算法 测试技术 C#
【数学 排列组合】1643. 第 K 条最小指令
【数学 排列组合】1643. 第 K 条最小指令
|
1月前
|
算法 测试技术 C#
【位运算】【 数学】【 哈希映射】2857. 统计距离为 k 的点对
【位运算】【 数学】【 哈希映射】2857. 统计距离为 k 的点对
|
6月前
集合的运算
集合的运算
34 1
|
6月前
|
算法 测试技术 C#
C++字典树算法:找出强数对的最大异或值 II
C++字典树算法:找出强数对的最大异或值 II
|
存储
[递推]双幂序列、多幂序列、双幂积序列的和
[递推]双幂序列、多幂序列、双幂积序列的和
160 0
[递推]双幂序列、多幂序列、双幂积序列的和
求实数的整数次幂(循环版)(高效)(位运算解题)
说明:参数 x 为底数,n 为指数。若参数正确,则函数值为 x 的 n 次幂。若参数不正确(当底数为 0 且指数为 0 或负数时无意义),则报告错误,函数值为0。// 这个位运算是大部分都不熟悉也不敢用的东西,但是确实是编程里面的一个非常重要的工具。请编写函数,用循环语句以最快的方法求任意实数的任意整数次幂。要求:不得调用 pow 函数,不得使用递归方法。指数 二进制 公式。
153 0
求实数的整数次幂(循环版)(高效)(位运算解题)