梦开始的地方
You gotta take chance for the things you care about. 为了你所执着的东西,你必须去冒险。
#include<iostream>
using namespace std;
int flag=0;
void f(int n[],int c[],int step)
{ int x1[4],x[4],y[4];
 int i,j;
 for(i=0;i<4;i++)
 { x[i]=n[i];
  x1[i]=n[i];
  y[i]=c[i];
 }
 if(step==4)
 { if(x[0]==24)
   flag=1;
  return;
 }
 else
  for(i=0;i<3;i++)
   for(j=i+1;j<4;j++)
   { i+=1-c[i];
    j+=1-c[j];
    y[j]=0;
    x1[i]+=x1[j];
    f(x1,y,step+1);
    x1[i]=x[i];
    x1[i]-=x1[j];
    f(x1,y,step+1);
    x1[i]=x[i];
    x1[i]=x1[j]-x1[i];
    f(x1,y,step+1);
    x1[i]=x[i];
    x1[i]*=x1[j];
    f(x1,y,step+1);
    x1[i]=x[i];
    if(x1[j]&&!(x1[i]%x1[j]))
    { x1[i]/=x1[j];
     f(x1,y,step+1);
     x1[i]=x[i];
    }
    if(x1[i]&&!(x1[j]%x1[i]))
    { x1[j]/=x1[i];
     f(x1,y,step+1);
     x1[i]=x[i];
    }
   }
}
int main()
{ int n[4],c[4]={1,1,1,1};
 cin>>n[0]>>n[1]>>n[2]>>n[3];
 f(n,c,1);
 if(flag)
  cout<<"Yes!"<<endl;
 else
  cout<<"No!"<<endl;
 return 0;
}
posted on 2006-03-04 18:13  ever  阅读(378)  评论(0)    收藏  举报