麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

算法訓練 2的次冪表示

2019-11-11 01:30:45
字體:
來源:轉載
供稿:網友
算法訓練 2的次冪表示  時間限制:1.0s   內存限制:512.0MB    問題描述  任何一個正整數都可以用2進制表示,例如:137的2進制表示為10001001。  將這種2進制表示寫成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)輸入格式  正整數(1<=n<=20000)輸出格式  符合約定的n的0,2表示(在表示中不能有空格)樣例輸入137樣例輸出2(2(2)+2+2(0))+2(2+2(0))+2(0)樣例輸入1315樣例輸出2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)提示  用遞歸實現會比較簡單,可以一邊遞歸一邊輸出

思路:

把數字轉換成為二進制時不用反轉,直接下標從最高位開始比較方便,只有最后為0,1,2的時候進行特殊處理就可以,也就是遞歸出口。其他的情況全部用遞歸實現就可以了。

代碼:

#include<iostream>#include<string>#include<cstring>#include<algorithm>using namespace std;string binary(int num){    string s="";    while(num)    {        if(num%2)s+="1";        else s+="0";        num/=2;    }    return s;}void slove(string s){    int len=s.length();    for(int i=len-1;i>=0;i--)    {        if(s[i]=='0')            continue;        if(i>2)        {            PRintf("2(");            string str=binary(i);            slove(str);            printf(")");            int flag=0;            for(int j=i-1;j>=0;j--)                if(s[j]=='1')                {                    flag=1;                    break;                }            if(flag)                printf("+");        }        else if(i==2)        {            printf("2(2)");            if(s[i-1]=='1'||s[i-2]=='1')printf("+");        }        else if(i==1)        {            printf("2");            if(s[i-1]=='1')printf("+");        }        else if(i==0)            printf("2(0)");    }}int main(){    int num;    scanf("%d",&num);    string s=binary(num);    slove(s);    printf("/n");    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91精品欧美一区二区三区 | 久久草在线视频国产 | 黄色一级片在线观看 | 在线日韩亚洲 | 久久久久久久久免费 | 一级黄色淫片 | 最新中文字幕第一页视频 | 久草手机在线 | 视频一区二区久久 | 宅男噜噜噜66国产免费观看 | 毛片一级视频 | 石原莉奈日韩一区二区三区 | 亚洲一区二区免费视频 | 日韩黄色片网站 | 精品国产一区三区| 成人毛片100部免费观看 | 日韩黄站| 第一区免费在线观看 | 色网站免费观看 | 婷婷一区二区三区四区 | 国产精品视频一区二区三区综合 | 精品国产一区二区三区四区在线 | 毛片免费视频观看 | 曰韩黄色片 | 国产一区二区三区在线观看视频 | www.狠狠操.com | 亚洲小视频在线播放 | 国产精品一区二区三区在线播放 | 蜜桃传免费看片www 一本色道精品久久一区二区三区 | 免费中文视频 | 久久99亚洲精品久久99果 | 99精品视频在线观看免费播放 | 特逼视频| 国产精品久久久久久久久岛 | 国产免费一区二区三区 | 成人毛片视频免费 | 九九热视频在线免费观看 | 久久国产秒 | 久久国产亚洲精品 | 欧美成人三级视频 | 久久精品女人天堂av |