社区讨论
蒟蒻求救 (违规紫衫)
灌水区参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m5j0j8pb
- 此快照首次捕获于
- 2025/01/05 10:47 去年
- 此快照最后确认于
- 2025/11/04 11:57 4 个月前
题目链接: P1236
分的代码 一直调也没给结果 看了眼题解也没看懂 太深奥了 求强大、伟大、博大的大佬救一下 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;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...