Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
168939 | A班邓淑文 | 幂次方 | C++ | 通过 | 100 | 1 MS | 256 KB | 593 | 2024-08-20 14:56:00 |
#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; }