kobellover


私信TA

用户名:kobellover

访问量:2963

签 名:

等  级
排  名 2932
经  验 2008
参赛次数 0
文章发表 27
年  龄 0
在职情况 学生
学  校 扬州大学
专  业

  自我简介:

TA的其他文章

核心 :递归+分治法


#include<iostream>

#include<cmath>

using namespace std;

void func(int n){

    int i;

    for(i=20;i>=0;i--){

        if(n&(1<<i)){//通过位运算找到最高位

            break;

        }

    }

    cout<<"2";

    if(i==0||i==2){

        cout<<"("<<i<<")";

    }

    if(i!=0&&i!=1&&i!=2){

        cout<<"(";

        func(i);

        cout<<")";

    }

    if(n-pow(2,i)!=0){//处理最大的2的幂之后的数

        int temp=n-pow(2,i);

        cout<<"+";

        func(temp);

    }

    return ;

}

int main()

{

    int n;

    cin>>n;

    func(n);

    return 0;

}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区