提交时间:2024-08-20 15:57:00
运行 ID: 169249
#include <bits/stdc++.h> using namespace std; int mark[20] = {1}; void f(int n) { int flag = 0; while(n>=mark[flag]) flag++; flag--; if(flag==1) cout<<2; else { if (flag==0) cout << "2(0)"; else {cout<<"2("; f(flag); cout<<")";} } n-=mark[flag]; if(n!=0) {cout<<"+"; f(n); } } int main() { int n; cin>>n; for(int i=1; i<17; i++) mark[i]=mark[i-1]*2; f(n); return 0; }