• LG1010 幂次方


    题目描述

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

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

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

    由此可知,137可表示为:

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

    进一步:7= 22+2+20 (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)
    

    /* P1010 幂次方
     * Au: GG
     */
    #include <bits/stdc++.h>
    using namespace std;
    string M[6];
    int n;
    
    inline int lowbit(int x) {
        return x & (-x);
    }
    int count(int x) {
        if (!x) return 0;
        int cnt = 0; x >>= 1;
        while (x > 0) x >>= 1, cnt++;
        return cnt;
    }
    string solve(int x) {
        if (!M[x].empty()) return M[x];
    
        string str;
        while (lowbit(x)) {
            if (!str.empty()) {
                if (lowbit(x) == 2)
                    str = "2+" + str;
                else
                    str = "2(" + solve(count(lowbit(x))) + ")+" + str;
            }
            else {
                if (lowbit(x) == 2)
                    str = "2";
                else
                    str = "2(" + solve(count(lowbit(x))) + ')';
            }
            x -= lowbit(x);
        }
        return str;
    }
    
    int main() {
        cin >> n; M[0] = "0";
        M[1] = "2(0)"; M[2] = "2";
        M[3] = "2+2(0)"; M[4] = "2(2)";
        cout << solve(n) << endl;
        return 0;
    }
    

    Post author 作者: Grey
    Copyright Notice 版权说明: Except where otherwise noted, all content of this blog is licensed under a CC BY-NC-SA 4.0 International license. 除非另有说明,本博客上的所有文章均受 知识共享署名 - 非商业性使用 - 相同方式共享 4.0 国际许可协议 保护。
  • 相关阅读:
    blob 下载功能和预览功能
    实现大文件上传
    element ui框架之Upload
    常用utils
    vue实现excel表格上传解析与导出
    理解script加载
    js处理10万条数据
    Shadow DOM
    20150625_Andriod_01_ListView1_条目显示
    20150624_Andriod _web_service_匹配
  • 原文地址:https://www.cnblogs.com/greyqz/p/7301560.html
Copyright © 2020-2023  润新知