设为首页 加入收藏

TOP

洛谷 p1010 幂次方
2019-09-06 00:26:51 】 浏览:26
Tags:洛谷 p1010 次方

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

 


洛谷 p1010 幂次方 https://www.cppentry.com/bencandy.php?fid=49&id=250207

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇c++ map容器使用及问题 下一篇矩阵乘法(四):分析问题,确定..