#include <iostream>
using namespace std;
typedef long long ll;
int n;
ll m[25]={1};
int recursion(int n){
if (n <= 2){
cout << n;
return 0;
}
for (int i = 25;i >= 0;i --){
if (n >= m[i]){
n -= m[i];
if (i == 1) cout << "2";
else{
cout << "2(";
recursion(i);
cout << ")";
}
if (n >= 1) cout << "+";
}
}
}
int main(){
cin >> n;
for (int i = 1;i <= 25;i ++) m[i] = m[i-1] * 2;
recursion(n);
cout << '\n';
return 0;
}
#1:
正确输入73
正确输出2(2(2)+2)+2(2+2(0))+2(0)
在DEV里好像是对的哇qwq
https://www.luogu.com.cn/record/174054285
测试点信息