这是30分的代码
https://www.luogu.com.cn/record/197484036
第3个点本地测出来就是输出8不知道为什么WA,求大佬指教
#include<bits/stdc++.h>
using namespace std;
int n,pd[30];
int main(){
cin>>n;
if(n%2){
cout<<-1;
return 0;
}
for(int i=1;i<=30;i++){
if((1<<i)&n)pd[i]=1;
}
for(int i=30;i>=1;i--){
if(pd[i])cout<<(1<<i)<<" ";
}
return 0;
}
这是AC的代码
#include<bits/stdc++.h>
using namespace std;
int n,pd[30];
int main(){
cin>>n;
if(n%2){
cout<<-1;
return 0;
}
for(int i=30;i>=1;i--){
if((1<<i)&n)cout<<(1<<i)<<" ";
}
return 0;
}