zoukankan      html  css  js  c++  java
  • 洛谷 P1010 幂次方 Label:模拟

    题目描述

    任何一个正整数都可以用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)

    代码

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<cstring>
     5 #include<algorithm>
     6 #define inf 0x3f3f3f3f
     7 #define ll long long
     8 using namespace std;
     9 int n;
    10 void trans(int i){
    11     if(i==14) cout<<"2(2(2+2(0))+2(2)+2)";
    12     if(i==13) cout<<"2(2(2+2(0))+2(2)+2(0))";
    13     if(i==12) cout<<"2(2(2+2(0))+2(2))";
    14     if(i==11) cout<<"2(2(2+2(0))+2+2(0))";
    15     if(i==10) cout<<"2(2(2+2(0))+2)";
    16     if(i==9)  cout<<"2(2(2+2(0))+2(0))";
    17     if(i==8)  cout<<"2(2(2+2(0)))";
    18     if(i==7)  cout<<"2(2(2)+2+2(0))";
    19     if(i==6)  cout<<"2(2(2)+2)";
    20     if(i==5)  cout<<"2(2(2)+2(0))";
    21     if(i==4)  cout<<"2(2(2))";
    22     if(i==3)  cout<<"2(2+2(0))";
    23     if(i==2)  cout<<"2(2)";
    24     if(i==1)  cout<<"2";
    25     if(i==0)  cout<<"2(0)";
    26 }
    27 int main(){
    28     cin>>n;
    29     while(n>0){
    30         for(int i=14;i>=0;i--){
    31             int k=pow(2,i);
    32             if(k<=n){
    33                 trans(i);
    34                 n-=k;
    35                 if(n>0) cout<<'+';
    36                 break;
    37             }
    38         }
    39     }
    40     return 0;
    41 }

    2^14=16384

    2^15=32768

    我这应该不算打表吧?

    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
  • 相关阅读:
    Github markdown页面内跳转
    github gist 无法访问
    Install pyaudio on Ubuntu
    删除链表的倒数第N个节点
    电话号码的字母组合
    最长公共前缀
    盛最多水的容器
    字符串转化整数与回文数
    Z 字形变换
    LeetCode1-5题
  • 原文地址:https://www.cnblogs.com/radiumlrb/p/5811186.html
Copyright © 2011-2022 走看看