一直以来都是0分
  • 板块P1236 算24点
  • 楼主Ch35
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/6/27 12:26
  • 上次更新2023/10/27 22:28:50
查看原帖
一直以来都是0分
672360
Ch35楼主2022/6/27 12:26

0分

#include<bits/stdc++.h>
using namespace std;
int a[100000],b[100000],n=-1;
struct node{
    int a1,a2,a3;
    char fh;
}c[100000];
void dfs(int cnt){
    n++;
    if(cnt==24&&b[1]==1&&b[2]==1&&b[3]==1&&b[4]==1){
        for(int i=1;i<=4;i++)cout<<c[i].a1<<c[i].fh<<c[i].a2<<'='<<c[i].a3<<endl;
        exit(0);
    }
    if(n==4)return;
    for(int i=1;i<=4;i++){
        if(b[i]==0){
            b[i]=1;
            c[n].a1=cnt,c[n].a2=a[i],c[n].a3=cnt+a[i],c[n].fh='+';
            dfs(cnt+a[i]); 
            if(cnt-a[i]>=0){
                c[n].a1=cnt,c[n].a2=a[i],c[n].a3=cnt-a[i],c[n].fh='-';
                dfs(cnt-a[i]);
            }
            if(a[i]-cnt>=0){
                c[n].a1=a[i],c[n].a2=cnt,c[n].a3=a[i]-cnt,c[n].fh='-';
                dfs(a[i]-cnt);
            }
            c[n].a1=cnt,c[n].a2=a[i],c[n].a3=cnt*a[i],c[n].fh='*';
            dfs(cnt*a[i]);
            if(a[i]!=0&&cnt%a[i]==0){
                c[n].a1=cnt,c[n].a2=a[i],c[n].a3=cnt/a[i],c[n].fh='/';
                dfs(cnt/a[i]);
            }
            if(cnt!=0&&a[i]%cnt==0){
                c[n].a1=a[i],c[n].a2=cnt,c[n].a3=a[i]/cnt,c[n].fh='/';            
        }
            b[i]=0;
    }
    n--;
}
}
int main(){
	for(int i=1;i<=4;i++)cin>>a[i];
	dfs(0);
    cout<<"No answer!";
   	return 0;
}
2022/6/27 12:26
加载中...