www.luogu.com.cn
洛谷
``````//24点2.0
#include<bits/stdc++.h>
using namespace std;
int a[10],b[10],x[10],y[10];
void sc()
{
for(int i=1;i<=3;i++)
{
if(x[i]<y[i])swap(x[i],y[i]);
cout<<x[i];
if(b[i]==1)cout<<"+"<<y[i]<<"="<<x[i]+y[i];
if(b[i]==2)cout<<"-"<<y[i]<<"="<<x[i]-y[i];
if(b[i]==3)cout<<"*"<<y[i]<<"="<<x[i]*y[i];
if(b[i]==4)cout<<"/"<<y[i]<<"="<<x[i]/y[i];
cout<<"\n";
}
}
bool ck()
{
for(int i=1;i<=4;i++)if(a[i]==24)return 1;
return 0;
}
void dfs(int t)
{
if(t>3)
{
if(ck())
{
sc();
exit(0);
}
return;
}
for(int i=2;i<=4;i++)
{
for(int j=1;j<=4;j++)
{
if(i!=j&&a[j]!=-1&&a[i]!=-1)
{
for(int k=1;k<=4;k++)
{
x[t]=a[i];
y[t]=a[j];
int l=a[i],r=a[j];
if(k==1)
{
b[t]=1;
a[i]=l+r;
}
if(k==2)
{
b[t]=2;
a[i]=abs(l-r);
}
if(k==3)
{
b[t]=3;
a[i]=l*r;
}
if(k==4)
{
if(a[j]==0||l%r!=0)continue;
b[t]=4;
a[i]=l/r;
}
a[j]=-1;
dfs(t+1);
a[i]=l;
a[j]=r;
}
}
}
}
}
int main()
{
//freopen("Poker.in","r",stdin);
//freopen("Poker.out","w",stdout);
cin>>a[1]>>a[2]>>a[3]>>a[4];
dfs(1);
cout<<"No answer!";
return 0;
}