萌新暴力求解求助(80分)
  • 板块P1236 算24点
  • 楼主Liyuqiao11
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/6/1 08:17
  • 上次更新2023/10/28 00:10:45
查看原帖
萌新暴力求解求助(80分)
648772
Liyuqiao11楼主2022/6/1 08:17
#include <bits/stdc++.h>
using namespace std;
double calculate(double a,double b,int x){
	double t;
	if(x==0){
		t=a+b;
	}
	if(x==1){
		t=a-b;
		if(t<=0){
			t=b-a;
		}
	} 
	if(x==2){
		t=a*b;
	}
	if(x==3){
		t=a/b;
	}
	return t;
}
char panduan(int x){
	char l;
	if(x==0){
		l='+';
	}
	if(x==1){
		l='-';
	}
	if(x==2){
		l='*';
	} 
	if(x==3){
		l='/';
	}
	return l;
}
int main(){
	double a,b,c,d,e=0,f=0,g=0,p,r,s,bz=0;
	int x,y,z,i,j,k;
	cin>>a>>b>>c>>d;
	for(i=0;i<=3;i++){
		for(j=0;j<=3;j++){
			for(k=0;k<=3;k++){
				e=calculate(a,b,i);
				f=calculate(e,c,j);
				g=calculate(f,d,k);
				if(i!=2&&i!=3&&(j==2||j==3)){
					p=calculate(b,c,j);
					r=calculate(p,d,k);
					s=calculate(r,a,i);
					if(s==24){
						cout<<max(b,c)<<panduan(j)<<min(b,c)<<'='<<p<<endl;
						cout<<max(p,d)<<panduan(k)<<min(p,d)<<'='<<r<<endl;
						cout<<max(r,a)<<panduan(i)<<min(r,a)<<'='<<s; 
						bz=1;
						break;
					}
				}
				if(i!=2&&i!=3&&(k==2||k==3)){
					p=calculate(c,d,k);
					r=calculate(b,p,j);
					s=calculate(r,a,i);
					if(s==24){
						cout<<max(c,d)<<panduan(k)<<min(c,d)<<'='<<p<<endl;
						cout<<max(b,p)<<panduan(j)<<min(b,p)<<'='<<r<<endl;
						cout<<max(r,a)<<panduan(i)<<min(r,a)<<'='<<s; 
						bz=1;
						break;
					}
				}
				if(g==24){
					cout<<max(a,b)<<panduan(i)<<min(a,b)<<'='<<e<<endl;
					cout<<max(e,c)<<panduan(j)<<min(e,c)<<'='<<f<<endl;
					cout<<max(f,d)<<panduan(k)<<min(f,d)<<'='<<g;
					bz=1;
					break;
				}
			}
			if(g==24||s==24){
				break;
			}
		}
		if(g==24||s==24){
			break;
		}
	}
	if(bz==0){
		cout<<"No answer!";
	}
	return 0;
}
2022/6/1 08:17
加载中...