国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

算法訓(xùn)練 2的次冪表示

2019-11-11 01:30:45
字體:
供稿:網(wǎng)友
算法訓(xùn)練 2的次冪表示  時(shí)間限制:1.0s   內(nèi)存限制:512.0MB    問題描述  任何一個(gè)正整數(shù)都可以用2進(jìn)制表示,例如:137的2進(jìn)制表示為10001001?! ⑦@種2進(jìn)制表示寫成2的次冪的和的形式,令次冪高的排在前面,可得到如下表達(dá)式:137=2^7+2^3+2^0  現(xiàn)在約定冪次用括號(hào)來表示,即a^b表示為a(b)  此時(shí),137可表示為:2(7)+2(3)+2(0)  進(jìn)一步: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)輸入格式  正整數(shù)(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)提示  用遞歸實(shí)現(xiàn)會(huì)比較簡(jiǎn)單,可以一邊遞歸一邊輸出

思路:

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

代碼:

#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;}


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 虞城县| 沾益县| 仁怀市| 洛扎县| 策勒县| 叶城县| 涟源市| 达州市| 铁岭市| 白沙| 内丘县| 逊克县| 孙吴县| 土默特右旗| 平塘县| 河池市| 永城市| 喀什市| 黑河市| 渑池县| 蒲城县| 平陆县| 惠安县| 隆回县| 温泉县| 赞皇县| 武陟县| 通江县| 中牟县| 民乐县| 墨玉县| 贺州市| 信阳市| 新巴尔虎右旗| 元谋县| 安达市| 黄山市| 儋州市| 新宁县| 儋州市| 含山县|