Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
169249 | A班-黄飞博 | 幂次方 | C++ | 输出超限 | 57 | 0 MS | 248 KB | 410 | 2024-08-20 15:57:00 |
#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; }