注:
pow(n,m)在cmath库中,返回n^m
C 库函数 - pow()
#include<iostream>
#include<cmath>
using namespace std;
int a[16],x=1;
int n;
void search(int n)
{
for(int i=14;i>=0;i--)//两万的数据最多是2^14
{
if(pow(2,i)<=n)
{
if(i==1)
cout<<"2";
else if(i==0)
cout<<"2(0)";
else
{
cout<<"2(";
search(i);
cout<<")";
}
n-=pow(2,i);
if(n!=0)//若n还没分解完,则后面还有项,所以输出一个+号
cout<<"+";
}
}
}
int main()
{
cin>>n;
search(n);
return 0;
}