标签:
/*
ID: modengd1
PROG: zerosum
LANG: C++
*/
#include <iostream>
#include <stdio.h>
#include <memory.h>
using namespace std;
int op[10];
void output(int limit)
{
cout<<1;
for(int i=0;i<limit-1;i++)
{
if(op[i]==0)
cout<<‘+‘;
else if(op[i]==1)
cout<<‘-‘;
else
cout<<‘ ‘;
cout<<i+2;
}
cout<<endl;
}
void slove(int limit,int deep)
{
if(limit-1==deep)
{
int ans=0;
int temp=1;
int po=1;
for(int i=0;i<limit-1;i++)
{
if(op[i]==0||op[i]==1)
{
ans+=po*temp;
temp=i+1+1;
if(op[i]==0)
po=1;
else
po=-1;
}
else
{
temp=temp*10+i+1+1;
}
}
ans+=po*temp;
if(ans==0)
output(limit);
return ;
}
op[deep]=2;
slove(limit,deep+1);
op[deep]=0;
slove(limit,deep+1);
op[deep]=1;
slove(limit,deep+1);
}
int main()
{
freopen("zerosum.in","r",stdin);
freopen("zerosum.out","w",stdout);
int N;
scanf("%d",&N);
slove(N,0);
return 0;
}
标签:
原文地址:http://www.cnblogs.com/modengdubai/p/4782171.html