求解幂集问题(蛮力法)

简介: 求解幂集问题(蛮力法)

对于给定的正整数n(1<=n<=10),求1~n构成的集合的所有子集(幂集)。


输入格式:

输入1个整数n。


输出格式:

输出1~n构成的集合的所有子集(幂集),一个集合占一行,集合的元素用{}括起来,元素之间用逗号分隔,最后1个元素后面没有逗号


输入样例:

在这里给出一组输入。例如:

3


输出样例:

在这里给出相应的输出。例如:

1. {}
2. {1}
3. {2}
4. {1,2}
5. {3}
6. {1,3}
7. {2,3}
8. {1,2,3}


#include <iostream>
using namespace std;
const int N = 15;
int n;
int a[N];
bool st[N];
void dfs(int n, int sum)
{
    if(sum > n)
    {
        int t = 0;
        cout << "{";
        for (int i = 1; i <= n; i ++ )
            if(st[i])
            {
                if(t ++ ) cout << ',';
                cout << i;
            } 
        cout << "}\n";
        return ;
    }
    st[sum] = false;
    dfs(n, sum + 1);
    st[sum] = true;
    dfs(n, sum + 1);
}
int main()
{
    cin >> n;
    for (int i = 1; i <= n; i ++ ) a[i] = i;
    dfs(n, 1);
    return 0;
}


不考虑顺序:回溯法

#include <iostream>
using namespace std;
const int N = 15;
int n;
int a[N];
bool st[N];
void dfs(int n, int sum)
{
    if(sum > n)
    {
        int t = 0;
        cout << "{";
        for (int i = 1; i <= n; i ++ )
            if(st[i])
            {
                if(t ++ ) cout << ',';
                cout << i;
            } 
        cout << "}\n";
        return ;
    }
    st[sum] = false;
    dfs(n, sum + 1);
    st[sum] = true;
    dfs(n, sum + 1);
}
int main()
{
    cin >> n;
    for (int i = 1; i <= n; i ++ ) a[i] = i;
    dfs(n, 1);
    return 0;
}


目录
相关文章
|
存储 人工智能 算法
秒懂算法 | 矩阵连乘问题
给定n个矩阵{A1,A2,A3,…,An},其中Ai与Ai+1(i=1,2,3,…,n-1)是可乘的。用加括号的方法表示矩阵连乘的次序,不同加括号的方法所对应的计算次序是不同的。
741 0
秒懂算法 | 矩阵连乘问题
|
5天前
|
算法 Java 测试技术
算法分析(蛮力法与减治算法应用实验报告)
这篇文章是关于算法分析的实验报告,介绍了如何使用蛮力法解决背包问题,并通过伪代码和Java代码实现,同时分析了其时间效率;还介绍了基于减治法思想实现的二叉查找树的插入与查找,同样提供了伪代码、Java源代码实现和时间效率分析,最后展示了测试结果截图。
算法分析(蛮力法与减治算法应用实验报告)
|
3月前
|
算法 Java C++
非启发式算法——二分、三分搜索算法
非启发式算法——二分、三分搜索算法
148 0
|
机器学习/深度学习 算法 数据处理
无约束最优化(五) 最小二乘法问题的解法
无约束最优化(五) 最小二乘法问题的解法
141 0
蓝桥杯:暴力求解四平方和
蓝桥杯:暴力求解四平方和
49 0
|
存储 算法 Python
基于pythonA*算法两种搜索算法求解八数码问题
基于pythonA*算法两种搜索算法求解八数码问题
234 0
基于pythonA*算法两种搜索算法求解八数码问题
蛮力法
蛮力法的主要思想就是用最简单的思路解决问题,一般性能不好,但仍然很重要。
再学一道算法题: 二分法求多项式单根
再学一道算法题: 二分法求多项式单根
再学一道算法题: 二分法求多项式单根
|
存储 机器学习/深度学习 人工智能
乘积量化比之暴力穷举,有哪些进步呢?
乘积量化比之暴力穷举,有哪些进步呢?
乘积量化比之暴力穷举,有哪些进步呢?
|
算法 Windows
【计算理论】计算复杂性 ( 两个带子的图灵机的时间复杂度 | 证明多个带子图灵机时间复杂度 )
【计算理论】计算复杂性 ( 两个带子的图灵机的时间复杂度 | 证明多个带子图灵机时间复杂度 )
237 0
【计算理论】计算复杂性 ( 两个带子的图灵机的时间复杂度 | 证明多个带子图灵机时间复杂度 )