2.3.3 zerosum 和为零
#include<bits/stdc++.h> using namespace std; int b[10],a; char str[3]={' ','+','-'}; void out() { for(int i=1;i<a;i++) cout<<i<<str[b[i]]; cout<<a<<endl; } void pd() { int sum=0,t=0,ud=1; for(int i=1;i<a;i++) { t=t*10+i; if(b[i]==1) { sum+=t*ud; ud=1; t=0; } else if(b[i]==2) { sum+=t*ud; ud=-1; t=0; } } t=t*10+a; sum+=t*ud; if(sum==0) out(); } int p(int n) { if(n>=a) { pd(); return 0; } for(int i=0;i<3;i++) { b[n]=i; p(n+1); } } int main() { cin>>a; p(1); return 0; }