24

来源:互联网 发布:sql查看数据库 编辑:程序博客网 时间:2024/05/01 01:41
#include<iostream>


using namespace std;


int used[4]={0},flag=0;
int an[4],bn[4];
int search(int m);
int cal(int a,int b,int fu);
int pan(int a,int b,int c,int d);
int main()
{
int i;
for(i=0;i<4;i++)
cin>>an[i];
search(0);
if(flag==0)
cout<<"No"<<endl;
}
int search(int m)
{
int i,j;
if(m==4)
{
pan(bn[0],bn[1],bn[2],bn[3]);
for(j=0;j<4;j++)
{
if(used[j]!=0)
used[j]==0;

}
else
{
for(i=0;i<4;i++)
{
if(used[i]==0)
{
bn[m]=an[i];
used[i]=1;
search(m+1);
used[i]=0;
}
}
}
}
int pan(int a,int b,int c,int d)
{



int ce[4];
    int yun[3]={0,1,2};//+ - *
int i,j,k;
    ce[1]=b;
ce[2]=c;
ce[3]=d;
ce[0]=a;
   for(i=0;i<4;i++)
   {
    for(j=0;j<4;j++)
    {
    for(k=0;k<4;k++)
    {
   
    if(cal(cal(cal(ce[0],ce[1],i),ce[2],j),ce[3],k)==24&&flag==0)
    {
    cout<<"Yes"<<endl;
    flag=1; 
    return 0;
    }
    if(cal(cal(ce[0],ce[1],i),cal(ce[2],ce[3],j),k)==24&&flag==0)
    {
    flag=1; 
    cout<<"Yes"<<endl;
    return 0;
   
    if(cal(cal(ce[0],cal(ce[1],ce[2],i),j),ce[3],k)==24&&flag==0)
    {
    flag=1;
    cout<<"Yes"<<endl;
    return 0;
    }
    if(cal(ce[0],cal(cal(ce[1],ce[2],i),ce[3],j),k)==24&&flag==0)
    {
    flag=1;
    cout<<"Yes"<<endl;
    return 0;
    }
    if(cal(ce[0],cal(ce[1],cal(ce[2],ce[3],i),j),k)==24&&flag==0)
    {
    flag=1;
    cout<<"Yes"<<endl;
    return 0;
    }
    }
    }
   }
   
   
       

int cal(int a,int b,int fu)
{
if(fu==0)
return(a+b);
else if(fu==1)
return(a-b);
 else if(fu==2)
return(a*b);
else if(fu==3&&b!=0&&a%b==0)//是一个除号;被除数不为0;能除尽 
return(a/b);
else//要么回一个不可能达到的数 
return(10000);
}
原创粉丝点击