郝20221128


私信TA

用户名:dotcpp0653600

访问量:2382

签 名:

等  级
排  名 468
经  验 4718
参赛次数 16
文章发表 42
年  龄 98
在职情况 教师
学  校 上海邮电大学
专  业 计算机程序开发

  自我简介:

TA的其他文章

小组邀请2002
浏览:17
2836 简单c++
浏览:197
1131(简单c++)
浏览:11

解题思路:

注意事项:

参考代码:

#include <bits/stdc++.h>
using namespace std;
int z[1000000];
int er(long long a)
{
    long long sum=0;
    for(int i=0; ; i++)
    {
        sum+=pow(2,i);
        if(sum>a)
            return sum/2;
        if(sum==a)
            return sum;

            sum=0;
    }

}
int main()
{
     int hh;
     long long  a;
     cin>>a;
     if(a%2!=0)
     {
         cout<<-1<<endl;
         return 0;
     }
     for(int i=0; ;i++)
     {
         int y=a;
         z[i]=er(a);
         a-=z[i];
          if(y-z[i]<=0)
         {
            hh=i;
            break;
         }
     }
     for(int i=0;i<=hh;i++)
     {
         cout<<z[i]<<" ";
     }
    return 0;
}


 

0.0分

2 人评分

  评论区

  • «
  • »