真是史杉P1236
wa的点
9 7 5 7
9-7=2
7+5=12
12*2=24
代码
#include<bits/stdc++.h>
using namespace std;
struct no
{
int a,c;
char b;
int d;
}hh[10];
int h[5];
int v[5];
int qww=0;
void qq(int x,int y)
{
if(x==1)
{
for(int i=1;i<=4;i++)
{
for(int j=i+1;j<=4;j++)
{
v[i]=v[j]=1;
qq(x+1,h[i]+h[j]);
if(qww==1)
{
hh[1].a=h[i];
hh[1].b='+';
hh[1].c=h[j];
hh[1].d=h[i]+h[j];
return;
}
qq(x+1,h[i]-h[j]);
if(qww==1)
{
hh[1].a=h[i];
hh[1].b='-';
hh[1].c=h[j];
hh[1].d=h[i]-h[j];
return;
}
qq(x+1,h[j]-h[i]);
if(qww==1)
{
hh[1].c=h[i];
hh[1].b='-';
hh[1].a=h[j];
hh[1].d=h[j]-h[i];
return;
}
qq(x+1,h[i]*h[j]);
if(qww==1)
{
hh[1].a=h[i];
hh[1].b='*';
hh[1].c=h[j];
hh[1].d=h[i]*h[j];
return;
}
if(h[i]!=0&&h[j]%h[i]==0)
{
qq(x+1,h[j]/h[i]);
if(qww==1)
{
hh[1].c=h[i];
hh[1].b='/';
hh[1].a=h[j];
hh[1].d=h[j]/h[i];
return;
}
}
if(h[j]!=0&&h[i]%h[j]==0)
{
qq(x+1,h[i]/h[j]);
if(qww==1)
{
hh[1].a=h[i];
hh[1].b='/';
hh[1].c=h[j];
hh[1].d=h[i]/h[j];
return;
}
}
v[i]=v[j]=0;
}
}
}
else
if(x==2)
{
for(int i=1;i<=4;i++)
{
if(v[i])
continue;
v[i]=1;
qq(x+1,h[i]+y);
if(qww==1)
{
hh[2].a=h[i];
hh[2].b='+';
hh[2].c=y;
hh[2].d=h[i]+y;
return;
}
qq(x+1,h[i]-y);
if(qww==1)
{
hh[2].a=h[i];
hh[2].b='-';
hh[2].c=y;
hh[2].d=h[i]-y;
return;
}
qq(x+1,y-h[i]);
if(qww==1)
{
hh[2].c=h[i];
hh[2].b='-';
hh[2].a=y;
hh[2].d=y-h[i];
return;
}
qq(x+1,h[i]*y);
if(qww==1)
{
hh[2].a=h[i];
hh[2].b='*';
hh[2].c=y;
hh[2].d=h[i]*y;
return;
}
if(h[i]!=0&&y%h[i]==0)
{
qq(x+1,y/h[i]);
if(qww==1)
{
hh[2].a=y;
hh[2].b='/';
hh[2].c=h[i];
hh[2].d=y/h[i];
return;
}
}
if(y!=0&&h[i]%y==0)
{
qq(x+1,h[i]/y);
if(qww==1)
{
hh[2].a=h[i];
hh[2].b='/';
hh[2].c=y;
hh[2].d=h[i]/y;
return;
}
}
v[i]=0;
}
}
else
{
int qw=0;
for(int i=1;i<=4;i++)
{
if(v[i]==0)
{
qw=h[i];
break;
}
}
cout<<y<<" "<<qw<<endl;
if(y+qw==24)
{
qww=1;
hh[3].a=y;
hh[3].b='+';
hh[3].c=qw;
hh[3].d=qw+y;
}
else
if(y*qw==24)
{
qww=1;
hh[3].a=y;
hh[3].b='*';
hh[3].c=qw;
hh[3].d=qw*y;
}
else
if(y-qw==24)
{
qww=1;
hh[3].a=y;
hh[3].b='-';
hh[3].c=qw;
hh[3].d=y-qw;
}
else
if(qw-y==24&&qw-y>0)
{
qww=1;
hh[3].a=qw;
hh[3].b='-';
hh[3].c=y;
hh[3].d=qw-y;
}
else
if(y!=0&&qw%y==0&&qw/y==24)
{
qww=1;
hh[3].a=qw;
hh[3].b='/';
hh[3].c=y;
hh[3].d=qw/y;
}
else
if(qw!=0&&y%qw==0&&y/qw==24)
{
qww=1;
hh[3].a=y;
hh[3].b='/';
hh[3].c=qw;
hh[3].d=y/qw;
}
return;
}
}
main()
{
ios::sync_with_stdio(false);
cin.tie(),cout.tie();
for(int i=1;i<=4;i++)
cin>>h[i];
qq(1,0);
if(qww==0)
{
cout<<"No answer!";
return 0;
}
for(int i=1;i<=3;i++)
{
cout<<hh[i].a<<hh[i].b<<hh[i].c<<"="<<hh[i].d<<endl;
}
}