提交时间:2024-08-20 14:56:00

运行 ID: 168939

#include <bits/stdc++.h> using namespace std; void p(int x){ vector<int> a; if(x==0){ cout<<"0"; return ; } if(x==2){ cout<<"2"; return ; } if(x==1){ cout<<"2(0)"; return ; } int y=x; while(y){ a.push_back(y%2); y/=2; } if(a.size()-1==1 && a[1]==1){ cout<<"2"; } else if(a[a.size()-1]==1){ cout<<"2("; p(a.size()-1); cout<<")"; } for(int i=a.size()-2;i>=0;i--){ if(a[i]==1 && i==1)cout<<"+2"; else if(a[i]==1){ cout<<"+2("; p(i); cout<<")"; } } } int main(){ int n; cin>>n; p(n); return 0; }