蓝桥杯ALGO-95 2的次幂表示

来源:互联网 发布:lun网络用语是什么意思 编辑:程序博客网 时间:2024/06/05 15:27

递归实现是很明显的,关键是输出格式的时候要小心处理“+”和2^1项。C++代码如下:

#include <bits/stdc++.h>using namespace std;void trans(int n){    if(n==0)    {        cout<<n;        return ;    }    if(n==1)        return ;    char s[30];    string k(itoa(n,s,2));    bool flag=false;    for(int i=0;i<k.size();++i)    {        if(s[i]=='1')        {            if(flag)                cout<<"+";            if(i==k.size()-2)                cout<<"2";            else            {                cout<<"2(";                trans(k.size()-i-1);                cout<<")";            }            flag=true;        }    }}int main(){    int n;    cin>>n;    trans(n);    return 0;}

原创粉丝点击