那个我基础不好,见谅!
#include<bits/stdc++.h>
using namespace std;
int n;
string b="0123456789";
bool sjb(string a)
{
string mn[10];
int x=0,l=a.size(),y=0,nm[10],j=0;
for(int i=1;i<l;i+=2)
{
if(a[i]==' ') a.erase(i,1);
}
for(int i=0;i<=l;i++)
{
if(a[i]>48 && a[i]<58)
{
y=(y*10)+(a[i]-'0');
}
else
{
nm[j]=y;
j++;
y=0;
mn[j]=a[i];
}
}
x=nm[0];
for(int i=1;i<=j;i++)
{
if(mn[i]=="+") x=x+nm[i];
if(mn[i]=="-") x=x-nm[i];
}
if(x==0)
{
return 1;
}
else
{
return 0;
}
}
void sb(int m,string a)
{
if(m==n)
{
if(sjb(a)==1)
{
cout<<a<<endl;
}
return;
}
sb(m+1,a+" "+b[m+1]);
sb(m+1,a+"+"+b[m+1]);
sb(m+1,a+"-"+b[m+1]);
}
int main()
{
cin>>n;
sb(1,"1");
}