#include<stdio.h>
char op[5]={'#','+','-','*','/'};
float cal(float x,float y,int op)
{
switch(op)
{
case 1:return x+y;
case 2:return x-y;
case 3:return x*y;
case 4:return x/y;
}
}
float model1(float i,float j,float k,float t,int op1,int op2,int op3)
{
float r1,r2,r3;
r1=cal(i,j,op1);
r2=cal(r1,k,op2);
r3=cal(r2,t,op3);
return r3;
}
float model2(float i,float j,float k,float t,int op1,int op2,int op3)
{
float r1,r2,r3;
r1=cal(j,k,op2);
r2=cal(i,r1,op1);
r3=cal(r2,t,op3);
return r3;
}
float model3(float i,float j,float k,float t,int op1,int op2,int op3)
{
float r1,r2,r3;
r1=cal(k,t,op3);
r2=cal(j,r1,op2);
r3=cal(i,r2,op1);
return r3;
}
float model4(float i,float j,float k,float t,int op1,int op2,int op3)
{
float r1,r2,r3;
r1=cal(j,k,op2);
r2=cal(r1,t,op3);
r3=cal(i,r2,op1);
return r3;
}
float model5(float i,float j,float k,float t,int op1,int op2,int op3)
{
float r1,r2,r3;
r1=cal(i,j,op1);
r2=cal(k,t,op3);
r3=cal(r1,r2,op2);
return r3;
}
int get24(int i,int j,int k,int t)
{
int op1,op2,op3;
int flag=0;
for(op1=1;op1<=4;op1++)
for(op2=1;op2<=4;op2++)
for(op3=1;op3<=4;op3++)
{
if(model1(i,j,k,t,op1,op2,op3)==24)
{
printf("((%d%c%d)%c%d)%c%d=24\n",i,op[op1],j,op[op2],k,op[op3],t);
flag=1;
}
if(model2(i,j,k,t,op1,op2,op3)==24)
{
printf("(%d%c(%d%c%d))%c%d=24\n",i,op[op1],j,op[op2],k,op[op3],t);
flag=1;
}
if(model3(i,j,k,t,op1,op2,op3)==24)
{
printf("%d%c(%d%c(%d%c%d))=24\n",i,op[op1],j,op[op2],k,op[op3],t);
flag=1;
}
if(model4(i,j,k,t,op1,op2,op3)==24)
{
printf("%d%c((%d%c%d)%c%d)=24\n",i,op[op1],j,op[op2],k,op[op3],t);
flag=1;
}
if(model5(i,j,k,t,op1,op2,op3)==24)
{
printf("(%d%c%d)%c(%d%c%d)=24\n",i,op[op1],j,op[op2],k,op[op3],t);
flag=1;
}
}
return flag;
}
void main()
{
int i,j,k,t;
printf("please input four integer(1-10)\n");
scanf("%d%d%d%d",&i,&j,&k,&t);
if(!get24(i,j,k,t))
printf("sorry,the four integer cannot be calculated to get 24\n");
}