【开源】24点
#include <iostream>
using namespace std;
bool flag;
int a[5][4];
int cal(int a,int b,int k){
if(k==0) return a+b;
else if(k==1) return a*b;
else if(k==2) return a-b;
else if(k==3&&(b==0||a%b!=0)) return -10007;
else return a/b;
}
void update(int num,int i,int j,int x){
a[num][0] = x;
int ii = 1,jj = 0;
while(ii<num){
while(jj==i||jj==j) jj++;
a[num][ii++] = a[num+1][jj];
}
// for(int m=0;m<num;m++) cout<<a[num][m]<<" ";
// cout<<endl;
}
void solve_dfs(int num){
if(flag) return;
if(num==1){
if(a[1][0]==24) flag = true;
return ;
}
else for(int i=0;i<num;i++){
for(int j=0;j<num;j++){
if(i==j) continue;
for(int k=0;k<4;k++){
int tmp = cal(a[num][i],a[num][j],k);
if(tmp==-10007||flag) continue;
update(num-1,i,j,tmp);
solve_dfs(num-1);
}
}
}
}
int main()
{
for(int i=0;i<4;i++) cin>>a[4][i];
solve_dfs(4);
if(flag) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
return 0;
}
本文作者:daiyulong
本文链接:https://www.cnblogs.com/daiyulong/p/kaiyuan-24dian.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步