#include <bits/stdc++.h>
#define rep(i, a, n) for(int i = a; i <= n; i++)
#define per(i, n, a) for(int i = n; i >= a; i--)
using namespace std;
int a[10002]={0,1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768};
int main()
{
int n,m;
cin>>n;
while(n)
per(i,15,1)
if(n>=a[i])
{
n=n-a[i];
if(m==0)
m++;
else
cout<<"+";
switch(i)
{
case 1: cout<<"2(0)";break;
case 2: cout<<"2";break;
case 3: cout<<"2(2)";break;
case 4: cout<<"2(2+2(0))";break;
case 5: cout<<"2(2(2))";break;
case 6: cout<<"2(2(2)+2(0))";break;
case 7: cout<<"2(2(2)+2)";break;
case 8: cout<<"2(2(2)+2+2(0))";break;
case 9: cout<<"2(2(2+2(0)))";break;
case 10: cout<<"2(2(2+2(0))+2(0))";break;
case 11: cout<<"2(2(2+2(0))+2)";break;
case 12: cout<<"2(2(2+2(0))+2+2(0))";break;
case 13: cout<<"2(2(2+2(0))+2(2))";break;
case 14: cout<<"2(2(2+2(0))+2(2)+2(0))";break;
case 15: cout<<"2(2(2+2(0))+2(2)+2)";break;
}
break;
}
return 0;
}
可以帮忙解释一下两个#define是什么意思吗?谢谢。