当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 洛谷 p1010 幂次方

洛谷 p1010 幂次方

2019年09月06日  | 移动技术网IT编程  | 我要评论

普法栏目剧爱潮,敌社情,孤山寨导游词

#include <cstdio>
#include <cmath>
using namespace std;
void dg(int n)
{
    int a;
    if(n==0) return;
    for(int i=0;i<=15;i++)    //求出n以内2最大的a次方
    {
        a=i;
        if(pow(2,a)>n)
        {
            a--;
            break;
        }
    }
    if(a==0) printf("2(0)");
    if(a==1) printf("2");
    if(a>1)     //当a大于1时进行递归
    {
        printf("2(");
        dg(a);   //使a次方用2的幂次方表示
        printf(")");
    }
    if(n!=pow(2,a))   //使减去最大2的a次方剩下的数用2的幂次方表示
    {
        putchar('+');
        dg(n-pow(2,a));
    }
}
int main()
{
    int n;
    scanf("%d",&n);
    dg(n);
    putchar('\n');
    return 0;
}

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网