首页 > 其他分享 >dfs:2的幂次方表示数字

dfs:2的幂次方表示数字

时间:2023-01-18 13:22:58浏览次数:35  
标签:数字 int res back dfs push 次方 include

#include<iostream>
#include<vector>
#include<bitset>
#include<string>
#include<algorithm>
using namespace std;

vector<string> res;
void dfs(int x)
{
    bitset<16>    a(x);//转换为2进制 ,根据题目给的最大数设置bitset位数 
    bool isfirstone=true;
    for(int i=15;i>=0;--i)
    {
        if(a.test(i))//第i位置是1 
        {
            if(!isfirstone)//不是第一个数 
            {
                res.push_back("+");
            }
            else
                isfirstone=false;
            if(i==0)
                res.push_back("2(0)");//除了1和2直接写上,其他要转换 
            else if(i==1)
                res.push_back("2");
            else
            {
                res.push_back("2(");//例子:把2的7次方这种变为2(2(2)+2+2(0)) 4+2+1
                dfs(i);
                res.push_back(")");
            }
        }
    }
    return; 
}
int main()
{
    int x;
    cin>>x;
    dfs(x);
    for(vector<string>::iterator m=res.begin();m!=res.end();m++)
    {
        cout<<*m;
    }
 }

 

标签:数字,int,res,back,dfs,push,次方,include
From: https://www.cnblogs.com/weinan030416/p/17059593.html

相关文章

  • 深度优先搜索dfs解决排列问题
    八皇后问题#include<iostream>#include<vector>#include<math.h>usingnamespacestd;intN;vector<int>res;voiddfs(intn){if(n==N)//一种情况结束输出......
  • 【DFS】LeetCode 543. 二叉树的直径
    题目链接543.二叉树的直径思路创建全局变量diameter以记录左子树高度加右子树高度,并在DFS过程中维护此变量。代码classSolution{intdiameter;publ......
  • AcWing1075. 数字转换
    题目描述如果一个数\(x\)的约数之和\(y\)(不包括他本身)比他本身小,那么\(x\)可以变成\(y\),\(y\)也可以变成\(x\)例如,\(4\)可以变为\(3\),\(1\)可以变为\(7\)。......
  • 给定一个数组,找出其中只出现一次的数字,其余数字都是出现两个以上。(找出单身狗)
    方法一:暴力解法;通过计算每个数字出现的次数来找出只出现一次的数字intarr[]={1,2,3,4,5,1,2,3,4};//找出单身狗 inti=0; intsz=sizeof(arr)/size......
  • 数字电路实验 06 - | 移位寄存器及其应用
    一、实验目的和任务掌握四位双向移位寄存器的逻辑功能与使用方法。了解移位寄存器的使用—实现数据的串行,并行转换和构成环形计数器。二、实验原理介绍1、移位寄存器是一个......
  • 数字电路实验 08 - | 555定时器及其应用
    一、实验目的和任务 熟悉555型集成时基电路的电路结构、工作原理及其特点。掌握555型集成时基电路的基本应用。二、实验原理介绍三、实验设备与器材数字逻辑电路实验箱。数......
  • 数字电路实验 07 - | 计数器及其应用
    一、实验目的和任务学会用集成电路构成计数器的方法。掌握中规模集成计数器的使用及功能测试方法。运用集成计数器构成1/N分频器。二、实验原理介绍计数器是数字系统中用得......
  • 数字电路实验 04 - | 组合逻辑电路的设计与测试
    一、实验目的和任务掌握组合逻辑电路的分析与设计方法。加深对基本门电路使用的理解。二、实验原理介绍三、实验数据、计算及分析ABCDZ00000001000100001100100001010011000......
  • 数字电路实验 05 - | 触发器及其应用
    一、实验目的和任务掌握基本RS、JK、T和D触发器的逻辑功能。掌握集成触发器的功能和使用方法。熟悉触发器之间相互转换的方法。二、实验原理介绍触发器是能够存储1位二进制......
  • 数字电路实验 03 - | 数据选择器及其应用
    一、实验目的和任务1.掌握数据选择器的逻辑功能和使用方法。2.学习用数据选择器构成组合逻辑电路的方法。二、实验原理介绍数据选择是指经过选择,把多个通道的数据传送到唯一......