#include <stdio.h>
#include <math.h>
int XD(double s, double m)
{
if(fabs(s-m)<1e-6)return 1;
return 0;
}
double f(double s1,double s2,char m)
{
if(m == '+') return s1+s2;
if(m == '-') return s1-s2;
if(m == '*') return s1*s2;
if(m == '/')
{
if(XD(s2,0)) return 65536;
return s1/s2;
}
}
void main()
{
char Sign[6]=" +-*/";
int i,Fh1,Fh2,Fh3,Sx1,Sx2,Sx3,Sx4;
double s1,s2,s3,Data[5];
for(i=1;i<=4;i++)
scanf("%lf",&Data[i]);
FILE *fp = fopen("F:\\11\\1.txt","a");
for(Fh1=1;Fh1<=4;Fh1++)
for(Fh2=1;Fh2<=4;Fh2++)
for(Fh3=1;Fh3<=4;Fh3++)
for(Sx1=1;Sx1<=4;Sx1++)
for(Sx2=1;Sx2<=4;Sx2++)
for(Sx3=1;Sx3<=4;Sx3++)
for(Sx4=1;Sx4<=4;Sx4++)
for(i=1;i<=5;i++)
{
if(Sx1 != Sx2 && Sx1 != Sx3 &&Sx1 != Sx4 &&Sx2 != Sx3 &&Sx2 != Sx4 &&Sx3 != Sx4)
{
if(i==1)
{
s1= f(Data[Sx1],Data[Sx2],Sign[Fh1]);
s2 = f(Data[Sx3],Data[Sx4],Sign[Fh2]);
s3 = f(s1,s2,Sign[Fh3]);
if(XD(s3,24.0))
{
fprintf(fp,"第一步=%lf,%lf,%c, =%lf\n",Data[Sx1],Data[Sx2],Sign[Fh1],s1);
fprintf(fp,"第二步=%lf,%lf,%c, =%lf\n",Data[Sx3],Data[Sx4],Sign[Fh2],s2);
fprintf(fp,"第三步=%lf,%lf,%c, =%lf\n",s1,s2,Sign[Fh3],s3);
}
}
if(i==2)
{
s1= f(Data[Sx1],Data[Sx2],Sign[Fh1]);
s2 = f(s1,Data[Sx3],Sign[Fh2]);
s3 = f(s2,Data[Sx4],Sign[Fh3]);
if(XD(s3,24.0))
{
fprintf(fp,"第一步=%lf,%lf,%c, =%lf\n",Data[Sx1],Data[Sx2],Sign[Fh1],s1);
fprintf(fp,"第二步=%lf,%lf,%c, =%lf\n",s1,Data[Sx3],Sign[Fh2],s2);
fprintf(fp,"第三步=%lf,%lf,%c, =%lf\n",s2,Data[Sx4],Sign[Fh3],s3);
}
}
if(i==3)
{
s1= f(Data[Sx2],Data[Sx3],Sign[Fh1]);
s2 = f(s1,Data[Sx1],Sign[Fh2]);
s3 = f(s2,Data[Sx4],Sign[Fh3]);
if(XD(s3,24.0))
{
fprintf(fp,"第一步=%lf,%lf,%c, =%lf\n",Data[Sx2],Data[Sx3],Sign[Fh1],s1);
fprintf(fp,"第二步=%lf,%lf,%c, =%lf\n",s1,Data[Sx1],Sign[Fh2],s2);
fprintf(fp,"第三步=%lf,%lf,%c, =%lf\n",s2,Data[Sx4],Sign[Fh3],s3);
}
}
if(i==4)
{
s1= f(Data[Sx2],Data[Sx3],Sign[Fh1]);
s2 = f(s1,Data[Sx4],Sign[Fh2]);
s3 = f(s2,Data[Sx1],Sign[Fh3]);
if(XD(s3,24.0))
{
fprintf(fp,"第一步=%lf,%lf,%c, =%lf\n",Data[Sx2],Data[Sx3],Sign[Fh1],s1);
fprintf(fp,"第二步=%lf,%lf,%c, =%lf\n",s1,Data[Sx4],Sign[Fh2],s2);
fprintf(fp,"第三步=%lf,%lf,%c, =%lf\n",s2,Data[Sx1],Sign[Fh3],s3);
}
}
if(i==5)
{
s1= f(Data[Sx3],Data[Sx4],Sign[Fh1]);
s2 = f(s1,Data[Sx2],Sign[Fh2]);
s3= f(s2,Data[Sx1],Sign[Fh3]);
if(XD(s3,24.0))
{
fprintf(fp,"第一步=%lf,%lf,%c, =%lf\n",Data[Sx3],Data[Sx4],Sign[Fh1],s1);