CSP-J T1 30分
  • 板块学术版
  • 楼主steve9572
  • 当前回复5
  • 已保存回复5
  • 发布时间2020/11/16 16:51
  • 上次更新2023/11/5 07:56:11
查看原帖
CSP-J T1 30分
223168
steve9572楼主2020/11/16 16:51
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
ll mpow(int x)
{
	ll res=1;
	for(int i=1;i<=x;i++)
		res*=2;
	return res;
}
int main()
{
	freopen("power.in","r",stdin);
	freopen("power.out","w",stdout);
	bool f=false;
	cin>>n;
	if(n%2!=0)
	{
		cout<<-1;
		return 0;
	}	
	int tot=log(n)/log(2);
	vector <ll> res;
	while(true)
	{
		res.push_back(mpow(tot));
		n-=mpow(tot);
		tot=log(n)/log(2);
		if(n==0)
		{
			f=true;
			break;
		}
		if(n==1) break; 
	}
	if(f==false) 
	{
		cout<<-1;
		return 0;
	}
	
	for(int i=0;i<res.size();i++)
		cout<<res[i]<<" ";
	return 0;
	
	//cout<<mpow(0);
}

2020/11/16 16:51
加载中...