zoukankan      html  css  js  c++  java
  • 洛谷 P1010 幂次方

    洛谷  P1010 幂次方

    题目描述

    任何一个正整数都可以用2的幂次方表示。例如

        137=2^7+2^3+2^0         

    同时约定方次用括号来表示,即a^b 可表示为a(b)。

    由此可知,137可表示为:

        2(7)+2(3)+2(0)

    进一步:7= 2^2+2+2^0 (2^1用2表示)

        3=2+2^0   

    所以最后137可表示为:

        2(2(2)+2+2(0))+2(2+2(0))+2(0)

    又如:

        1315=2^10 +2^8 +2^5 +2+1

    所以1315最后可表示为:

        2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

    输入输出格式

    输入格式:

    一个正整数n(n≤20000)。

    输出格式:

    符合约定的n的0,2表示(在表示中不能有空格)

    输入输出样例

    输入样例#1:

    1315

    输出样例#1:

    2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

     

     

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int i,j,n,m,k;
    void work(int n)
    {
        if(n==0){
            cout<<"2(0)"; return ;
        }
        if(n==1){
            cout<<"2"; return ;
        }
        if(n==2){
            cout<<"2(2)"; return ;
        }
        int x;
        cout<<"2(";
        while(n)
        {
            for(x=0; (1<<x)<=n; x++);
            x--; n-=(1<<x);
            work(x);
            if(n) cout<<"+";
        }
        cout<<")";
    }
    int main()
    {
        cin>>n;
        int y;
        while(n)
        {
            for(y=0; (1<<y)<=n; y++);
                y--;
            n-=(1<<y);
            work(y);
            if(n) cout<<"+";
        }
        return 0;
    }
  • 相关阅读:
    继百岁版之后的续命版的更新
    重启nginx
    酒吧流行游戏不完全手册
    google实时搜索
    ubuntu 支持gbk
    网页编码
    爬虫日志分析
    feedsky 话题 营销
    python时间日期格式转换
    nginx错误重定向
  • 原文地址:https://www.cnblogs.com/dxy1174868024/p/5570456.html
Copyright © 2011-2022 走看看