c组计算量,考虑的点有点复杂,可能需要纸写
注意的点:
1.优先级
2.if else语句 最后一个判断 直接用else
不然会编译出错
3.注意实型 float
题目中给了不为0,如果其他题有0的情况,要注意好 除法 中的 除数
float 做运算时还可以 /1.0

C简单的24点
输入为4个数字,a,b,c,d。若a^b^c^d=24,则称该数组满足24点,其中^可以为+、-、*、/任一个,若不能得到结果24,则称该数组不满足24点。(计算为实型)
输入:
第一行为测试组数t
接下来t行,每一行为四个整数a,b,c,d,测试是否满足24点
1<=a,b,c,d<10000(右区间忘了,反正四个数不为0)
输出
在每一行
若满足,输出YES
不满足,输出NO
#include<stdio.h>
float sum=0;float sum1=0;
float cul(float a,float b,int i){ //一开始不是float,最后由float变为int时精度值会变
if(i==0)
return a+b;
else if(i==1)
return a-b;
else if(i==2)
return a*b;
else
return (a/b)/1.0;
}
int juge(int i){
if(i==0||i==1)
return 1;
else return 2;
}
int main()
{
float a,b,c,d;
int t,x,y,z;
scanf("%d",&t);
bool flag=false;
while(t--){
scanf("%f%f%f%f",&a,&b,&c,&d);
int sum;
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
for(int k=0;k<4;k++){
x=juge(i);
y=juge(j);
z=juge(k);
sum=0;
if(x==y&&y>=k){ //111 222 221
sum=cul(a,b,i);
sum=cul(sum,c,j);
sum=cul(sum,d,k);
}
else if(x>y&&y==k){ //211
sum=cul(a,b,i);
sum=cul(sum,c,j);
sum=cul(sum,d,k);
}
else if(x<y&&y==k){ //122
sum=cul(c,d,k);
sum=cul(b,sum,j);
sum=cul(a,sum,i);
}
else if(x<y&&y>k){ //121
sum=cul(b,c,j);
sum=cul(a,sum,i);
sum=cul(sum,d,k);
}
else if(x==y&&y<k){ //112
sum=cul(c,d,k);
sum=cul(b,sum,j);
sum=cul(a,sum,i);
}
else if(x==k&&x>y){ //212
sum=cul(c,d,k);
sum1=cul(a,b,i);
cul(sum1,sum,j);
}
if(sum==24){
flag=true;
}
}
}
}
if(flag==true){
printf("Yes!");}
else printf("No!");
}
return 0;
}