洛谷 p1010 幂次方

2019-09-08 09:37:40来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

洛谷 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;
}

 


原文链接:https://www.cnblogs.com/zptcszj/p/11469861.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:IEEE浮点表示 (原发布 csdn 2018-10-14 10:29:33)

下一篇:LeetCode380 常数时间插入、删除和获取随机元素