只输出了一部分
#include<iostream>
#include<cstring>
using namespace std;
int a[101],ans,x;
void searchh(int,int);//搜索
void print(int); //输出
int main()
{
for(int i=0;i<=100;i++)
a[i]=1;
cin>>x;
searchh(1,x);
return 0;
}
void searchh(int m,int n){
for(int i=a[m];i<=n;i++){
if(i<x){
a[m]=i;
n-=i;
if(n==0)
print(m);
else
searchh(m+1,n);
n+=i;//回溯
}
}
}
void print(int m){
ans++;
cout<<x<<"=";
for(int i=1;i<m;i++)
cout<<a[i]<<"+";
cout<<a[m]<<endl;;
}