社区讨论

蒟蒻求调

P1236算24点参与者 1已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@m5hnagzd
此快照首次捕获于
2025/01/04 11:49
去年
此快照最后确认于
2025/11/04 12:00
4 个月前
查看原帖
60分的代码 看了眼题解也没看懂 太深奥了 求强大、伟大、博大的大佬救一下 QAQ
CPP
#include<stdio.h>
#include<cmath>
int a[4];
struct L{
	int num1;
	int num2;
	int result;
	char op;	
};
int Suan(int a,int b,char f){return (f=='+')?a+b:(f=='-')?abs(a-b):(f=='*')?a*b:(f=='/'&&b!=0)?a/b:0;}
bool Qp(int *a,int n){
	int i=n-2,j=n-1;
	while(i>=0&&a[i]>=a[i+1])i--;
    if(i<0)return 0;
    while(a[j]<=a[i])j--;
    int temp=a[i];
    a[i]=a[j];
    a[j]=temp;
    int l=i+1,r=n-1;
    while(l<r){
        temp=a[l];
        a[l]=a[r];
        a[r]=temp;
        l++;
        r--;
    }
    return 1;
}
int main(){
	for(int i=0;i<4;i++)scanf("%d",&a[i]);	
	char f[4]={'+','-','*','/'};
	int l[4]={0,1,2,3};
	while(Qp(l,4)){
		for(int i=0;i<4;i++){
			for(int j=0;j<4;j++){
				for(int k=0;k<4;k++){
					int sum1=Suan(a[l[0]],a[l[1]],f[i]);
                    if(sum1!=0){
                        int sum2=Suan(sum1,a[l[2]],f[j]);
                        if(sum2!=0){
                            int sum3=Suan(sum2,a[l[3]],f[k]);
                            if(sum3==24){
                                printf("%d%c%d=%d\n%d%c%d=%d\n%d%c%d=24\n",a[l[0]],f[i],a[l[1]],sum1,sum1,f[j],a[l[2]],sum2,sum2,f[k],a[l[3]]);
                                return 0;
                            }
                        }
                    }
				}
			}
		}
	}
	printf("No answer!\n");
	return 0;
}
/*畜牲Bits/stdc++.h 天天撞域名 爷不写辣!!!  ̄へ ̄*/

回复

1 条回复,欢迎继续交流。

正在加载回复...