国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 容城县| 九龙县| 元氏县| 兴文县| 乐亭县| 关岭| 克什克腾旗| 边坝县| 巨野县| 无为县| 安宁市| 永康市| 罗城| 渝北区| 南投市| 卢氏县| 镇巴县| 含山县| 密山市| 扶风县| 新疆| 万盛区| 陕西省| 策勒县| 迭部县| 玉门市| 三台县| 泌阳县| 恩施市| 四川省| 靖宇县| 台湾省| 通城县| 新竹县| 焦作市| 眉山市| 临湘市| 资兴市| 鹤岗市| 屯门区| 莱西市|