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;
}
领取专属 10元无门槛券
私享最新 技术干货