📄 1204.cpp
字号:
#include<stdio.h>
#include<algorithm>
using namespace std;
int a[35];
int M;
char use[31];
int ak[31];
int num;
int c;
void print(int sum)
{
int i;
for(i=ak[num-1]+1;i<M;i++)
if(sum==a[i])break;
if(i<M)
{
c++;
for(i=0;i<num;i++)
{
if(i!=0)printf("+");
printf("%d",a[ak[i]]);
}
printf("=");
printf("%d\n",sum);
}
}
bool Search(int k,int sum)
{
if(k==num)print(sum);
else
{
int i;
int b;
if(k==0)b=0;
else b=ak[k-1]+1;
for(i=b;i<M-1;i++)
{
ak[k]=i;
if(sum+a[ak[k]]>a[M-1])return false;
if(!Search(k+1,sum+a[ak[k]]) && ak[k+1]-ak[k]==1)return false;
}
}
return true;
}
int main()
{
int T;
int i,j,k;
int t;
scanf("%d",&T);
for(t=1;t<=T;t++)
{
scanf("%d",&M);
for(j=0;j<M;j++)
scanf("%d",&a[j]);
sort(&a[0],&a[M]);
c=0;
for(j=2;j<M;j++)
{
num=j;
Search(0,0);
}
if(c==0)printf("Can't find any equations.\n");
printf("\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -