#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
double a[24][4];
int b[24][4];
double num1,num2,num3,num4;
void initiala()
{
a[0][0]=num1;a[0][1]=num2;a[0][2]=num3;a[0][3]=num4;
a[1][0]=num1;a[1][1]=num2;a[1][2]=num4;a[1][3]=num3;
a[2][0]=num1;a[2][1]=num3;a[2][2]=num2;a[2][3]=num4;
a[3][0]=num1;a[3][1]=num3;a[3][2]=num4;a[3][3]=num2;
a[4][0]=num1;a[4][1]=num4;a[4][2]=num3;a[4][3]=num2;
a[5][0]=num1;a[5][1]=num4;a[5][2]=num2;a[5][3]=num3;
a[6][0]=num2;a[6][1]=num1;a[6][2]=num3;a[6][3]=num4;
a[7][0]=num2;a[7][1]=num1;a[7][2]=num4;a[7][3]=num3;
a[8][0]=num2;a[8][1]=num3;a[8][2]=num1;a[8][3]=num4;
a[9][0]=num2;a[9][1]=num3;a[9][2]=num4;a[9][3]=num1;
a[10][0]=num2;a[10][1]=num4;a[10][2]=num3;a[10][3]=num1;
a[11][0]=num2;a[11][1]=num4;a[11][2]=num1;a[11][3]=num3;
a[12][0]=num3;a[12][1]=num1;a[12][2]=num2;a[12][3]=num4;
a[13][0]=num3;a[13][1]=num1;a[13][2]=num4;a[13][3]=num2;
a[14][0]=num3;a[14][1]=num2;a[14][2]=num1;a[14][3]=num4;
a[15][0]=num3;a[15][1]=num2;a[15][2]=num4;a[15][3]=num1;
a[16][0]=num3;a[16][1]=num4;a[16][2]=num3;a[16][3]=num1;
a[17][0]=num3;a[17][1]=num4;a[17][2]=num1;a[17][3]=num3;
a[18][0]=num4;a[18][1]=num1;a[18][2]=num3;a[18][3]=num2;
a[19][0]=num4;a[19][1]=num1;a[19][2]=num2;a[19][3]=num3;
a[20][0]=num4;a[20][1]=num2;a[20][2]=num3;a[20][3]=num1;
a[21][0]=num4;a[21][1]=num2;a[21][2]=num1;a[21][3]=num3;
a[22][0]=num4;a[22][1]=num3;a[22][2]=num1;a[22][3]=num2;
a[23][0]=num4;a[23][1]=num3;a[23][2]=num2;a[23][3]=num1;
}
void main()
{
int i=0;
int j=0;
int k=0;
int m=0;
bool flag=false;
double mid1,mid2,mid3;
cout<<"输入四个数,以空格隔开(如2 7 7 10):";
cin>>num1>>num2>>num3>>num4;
initiala();
for(i=0;i<24;i++)
{
num1=a[i][0];num2=a[i][1];num3=a[i][2];num4=a[i][3];
for(j=1;j<5;j++)
{
switch(j)
{
case 1: mid1=num1+num2;break;
case 2: mid1=num1-num2;break;
case 3: mid1=num1*num2;break;
case 4: mid1=num1/num2;break;
default: goto loop;
}
for(k=1;k<5;k++)
{
switch(k)
{
case 1: mid2=num3+mid1;break;
case 2: mid2=mid1-num3;break;
case 3: mid2=num3*mid1;break;
case 4: mid2=mid1/num3;break;
default: goto loop;
}
for(m=1;m<5;m++)
{
switch(m)
{
case 1: mid3=mid2+num4;break;
case 2: mid3=mid2-num4;break;
case 3: mid3=mid2*num4;break;
case 4: mid3=mid2/num4;break;
default: goto loop;
}
if(mid3==24||mid3==-24)
{
flag=true;
goto loop;
}
if((mid3==1.0/24||mid3==-1.0/24)&&m==4)
{
flag=true;
goto loop;
}
}//form
}//fork
}//forj
}//fori
cout<<"Second monthd"<<endl;
for(i=0;i<24;i++) //num1,num2****num3,num4
{
num1=a[i][0];num2=a[i][1];num3=a[i][2];num4=a[i][3];
for(j=1;j<5;j++)
{
switch(j)
{
case 1: mid1=num1+num2;break;
case 2: mid1=num1-num2;break;
case 3: mid1=num1*num2;break;
case 4: mid1=num1/num2;break;
default: goto loop;
}
for(k=1;k<5;k++)
{
switch(k)
{
case 1: mid2=num3+num4;break;
case 2: mid2=num4-num3;break;
case 3: mid2=num3*num4;break;
case 4: mid2=num4/num3;break;
default: goto loop;
}
for(m=1;m<5;m++)
{
switch(m)
{
case 1: mid3=mid2+mid1;break;
case 2: mid3=mid2-mid1;break;
case 3: mid3=mid2*mid1;break;
case 4: mid3=mid2/mid1;break;
default: goto loop;
}
if(mid3==24||mid3==-24)
{
flag=true;
goto loop1;
}
if((mid3==1.0/24||mid3==-1.0/24)&&m==4)
{
flag=true;
goto loop1;
}
}//form
}//fork
}//forj
}//fori
loop: //first.
if(!flag)
cout<<"failed!"<<endl;
else
{
if(mid3==24||mid3==-24)
{
cout<<"/n答案是:((";
cout<<a[i][0];
switch(j)
{
case 1: cout<<"+";break;
case 2: cout<<"-";break;
case 3: cout<<"*";break;
case 4: cout<<"/";break;
default: cout<<" ";break;
}
cout<<a[i][1]<<")";
switch(k)
{
case 1: cout<<"+";break;
case 2: cout<<"-";break;
case 3: cout<<"*";break;
case 4: cout<<"/";break;
default: cout<<" ";break;
}
cout<<a[i][2]<<")";
switch(m)
{
case 1: cout<<"+";break;
case 2: cout<<"-";break;
case 3: cout<<"*";break;
case 4: cout<<"/";break;
default: cout<<" ";break;
}
cout<<a[i][3]<<endl;
getchar();
}
else/1/24/
{
cout<<"/n答案是:";
cout<<a[i][3];
switch(m)
{
case 1: cout<<"+";break;
case 2: cout<<"-";break;
case 3: cout<<"*";break;
case 4: cout<<"/";break;
default: cout<<" ";break;
}
cout<<"(("<<a[i][0];
switch(j)
{
case 1: cout<<"+";break;
case 2: cout<<"-";break;
case 3: cout<<"*";break;
case 4: cout<<"/";break;
default: cout<<" ";break;
}
cout<<a[i][1]<<")";
switch(k)
{
case 1: cout<<"+";break;
case 2: cout<<"-";break;
case 3: cout<<"*";break;
case 4: cout<<"/";break;
default: cout<<" ";break;
}
cout<<a[i][2]<<")"<<endl;
getchar();
}
}
loop1: second
if(flag)
{
if(mid3==24||mid3==-24)
{
cout<<"/n答案是:(";
cout<<a[i][0];
switch(j)
{
case 1: cout<<"+";break;
case 2: cout<<"-";break;
case 3: cout<<"*";break;
case 4: cout<<"/";break;
default: cout<<" ";break;
}
cout<<a[i][1]<<")";
switch(m)
{
case 1: cout<<"+";break;
case 2: cout<<"-";break;
case 3: cout<<"*";break;
case 4: cout<<"/";break;
default: cout<<" ";break;
}
cout<<"("<<a[i][2];
switch(k)
{
case 1: cout<<"+";break;
case 2: cout<<"-";break;
case 3: cout<<"*";break;
case 4: cout<<"/";break;
default: cout<<" ";break;
}
cout<<a[i][3]<<")"<<endl;
getchar();
}
else/1/24/
{
cout<<"/n答案是:";
cout<<a[i][3];
switch(m)
{
case 1: cout<<"+";break;
case 2: cout<<"-";break;
case 3: cout<<"*";break;
case 4: cout<<"/";break;
default: cout<<" ";break;
}
cout<<"(("<<a[i][0];
switch(j)
{
case 1: cout<<"+";break;
case 2: cout<<"-";break;
case 3: cout<<"*";break;
case 4: cout<<"/";break;
default: cout<<" ";break;
}
cout<<a[i][1]<<")";
switch(k)
{
case 1: cout<<"+";break;
case 2: cout<<"-";break;
case 3: cout<<"*";break;
case 4: cout<<"/";break;
default: cout<<" ";break;
}
cout<<a[i][2]<<")"<<endl;
getchar();
}
}
getchar();
}