2018网研院c

c组计算量,考虑的点有点复杂,可能需要纸写

注意的点:

1.优先级

2.if else语句 最后一个判断 直接用else

不然会编译出错 

3.注意实型 float

题目中给了不为0,如果其他题有0的情况,要注意好   除法  中的    除数

float 做运算时还可以   /1.0


/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;

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容