怎么tle了???
查看原帖
怎么tle了???
1159812
StephenCurry_楼主2024/7/27 15:58
#include <bits/stdc++.h>
using namespace std;
int n,k;
int main(){
	scanf("%d",&n);
	for(int i=1;;i++){
		if(pow(2,i-1)<n&&pow(2,i)>=n){
			k=i;
			break;
		}
	}
	if(n%2){
		printf("-1");
		return 0;
	}
	for(int i=k;i>=1&&n>1;i--){
		if(pow(2,i)<=n&&pow(2,i+1)>n){
			int ans=pow(2,i);
			printf("%d ",ans);
			n=n-ans;
		}
	}
	return 0;
}
2024/7/27 15:58
加载中...