首页
学习
活动
专区
工具
TVP
发布

CSP-J 2020复赛第一题题解

CSP-J/S 2020第二轮认证已于11月7日结束,今年复赛的参赛人数超过2.6万,竞争比较激烈。

   优秀的拆分这一题并不复杂,可以通过进制转换分方法解决,本地的数据范围也不大,只需要int就够,因此程序较为简单。至少可以用以下两种方法解决:

程序1:

#include

using namespace std;

int main()

{

int a[32],len=0,n;

//freopen("power.in","r",stdin);

//freopen("power.out","w",stdout);

cin>>n;

if(n%2)

{

cout

return 0;

}

while(n)

{

a[len++]=n%2;

n/=2;

}

for(int i=len-1;i>=0;i--)

{

if(a[i])

{

cout

}

}

return 0;

}

程序2:

#include

using namespace std;

int main()

{

int n,a[32]=;

//freopen("power.in","r",stdin);

//freopen("power.out","w",stdout);

cin>>n;

if(n%2)

{

cout

return 0;

}

for(int i=1;i

a[i]=pow(2,i);

for(int i=29;i>0;i--)

{

if(n>=a[i])

{

cout

n=n%a[i];

}

}

return 0;

}

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201108A0BB5H00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券