前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >牛客网–2的幂次方

牛客网–2的幂次方

作者头像
全栈程序员站长
发布2022-06-29 14:54:26
2980
发布2022-06-29 14:54:26
举报
文章被收录于专栏:全栈程序员必看
代码语言:javascript
复制
#include<iostream>
#include<stdio.h>
#include<string>
#include<cmath>
#include<vector>
using namespace std;
string dtob(int n){
    int sum=0;
    vector<int> v;
    if(n==0) return "0";
    for(int i=15;i>=0;i--){
        int t = pow(2,i);
        if(sum+t<=n){
            v.push_back(i);
            if(sum+t==n) break;
            sum+=t;
        }
    }
    string s;
    for(int i=0;i<v.size();i++){
        string t ;
        if(v[i]==1) t = "2";
        else t = "2("+dtob(v[i])+")";//此处是递归
        s.append(t);
        if(i!=v.size()-1){
            s.push_back('+');
        }
    }
    return s;
}
int main(){
    int n;
    while(cin>>n){
        cout<<dtob(n)<<endl;
    }
    return 0;
}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100206.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档