80分求助!
查看原帖
80分求助!
322339
Ananac楼主2020/11/11 20:14

也不知道为什么最后两个点过不去

using namespace std;
int a[2000000];
int main()
{
	int n,x=0;
	cin>>n;
	if(n%2==1)
	{
		cout<<"-1"<<endl;
		return 0;
	}
	for(int i=1;i<=20;i++)
		if(pow(2,i)==n)
		{
			cout<<n<<endl;
			return 0;
		}
	for(int i=1;i<=20&&n!=0;i++)
	{
		if(pow(2,i)>n)
		{
			x++;
			a[x]=pow(2,i-1);
			n-=pow(2,i-1);
			i=1;
		}
		if(pow(2,i)==n)
		{
			x++;
			a[x]=pow(2,i);
			n-=pow(2,i);
			break;
		}
	}
	for(int i=1;i<=x;i++)
		cout<<a[i]<<" ";
	return 0;
}```
2020/11/11 20:14
加载中...