• POJ 3983:快算24


    快算24
    Time Limit: 1000MS   Memory Limit: 65536K
    Total Submissions: 4791   Accepted: 2930

    Description

    给定4个不大于10的正整数(范围1-10),要求在不改变数据先后顺序的情况下,采用加减乘除四种运算,找到一个表达式,使得最后的结果是24。

    Input

    4个不大于10的正整数。输入数据保证存在唯一解。

    Output

    不改变位置顺序,由'+','-','*','/'4个运算符和'(',')'组成的表达式

    Sample Input

    5 5 1 5

    Sample Output

    5*(5-(1/5))


    三年前,大一的时候用C语言写的。一晃三年已过,我却没做多少题。没记错的话,当时暴力的时候,写的这叫一个累。后来在discuss中看到,这道题的测试用例只有给出的那一个,所以只需输出5*(5-(1/5))即可。。。。。。

    反正暴力的话就一定要写下去。

    也还可以暴力+ - * /,一共就三个位置。之后就是暴力括号的事情。


    代码:

    #include<stdio.h>
    #include<stdlib.h>
    main ()
    {
       int a,b,c,d,e,f,g,h,i,j,k,l;
       double m,n; 
       while(scanf("%d %d %d %d",&a,&b,&c,&d)==4){
        e=a+b;
        f=c+d;
        g=a-b;
        h=c-d;
        i=a*b;
        j=c*d;
        m=(double)a/b;
        n=(double)c/d;
        if(e+f==24)
            printf("%d+%d+%d+%d
    ",a,b,c,d);
        if(e*f==24)
              printf("(%d+%d)*(%d+%d)
    ",a,b,c,d);
        if(e+h==24)
             printf("%d+%d+%d-%d
    ",a,b,c,d);
        if(e-h==24)
             printf("%d+%d-%d+%d
    ",a,b,c,d);
        if(e*h==24)
             printf("(%d+%d)*(%d-%d)
    ",a,b,c,d);
        if(g+f==24)
             printf("%d-%d+%d+%d
    ",a,b,c,d);
        if(g*f==24)
             printf("(%d-%d)*(%d+%d)
    ",a,b,c,d);
        if(g*h==24)
             printf("(%d-%d)*(%d-%d)
    ",a,b,c,d);
         if(i+f==24)
             printf("%d*%d+%d+%d
    ",a,b,c,d);
        if(i-f==24)
             printf("%d*%d-%d-%d
    ",a,b,c,d);
        if(i*f==24)
             printf("%d*%d*(%d+%d)
    ",a,b,c,d);      
        if(f!=0&&i/f==24)
             printf("%d*%d/(%d+%d)
    ",a,b,c,d);
        if(i+h==24)
             printf("%d*%d+%d-%d
    ",a,b,c,d);
        if(i-h==24)
             printf("%d*%d-%d+%d
    ",a,b,c,d);
        if(i*h==24)
             printf("%d*%d*(%d-%d)
    ",a,b,c,d);
       if(h!=0&&i/h==24)
             printf("%d*%d/(%d-%d)
    ",a,b,c,d);
        if(e+j==24)
             printf("%d+%d+%d*%d
    ",a,b,c,d);
        if(e*j==24)
             printf("(%d+%d)*%d*%d
    ",a,b,c,d);
        if(g+j==24)
             printf("%d-%d+%d*%d
    ",a,b,c,d);
        if(g*j==24)
             printf("(%d-%d)*%d*%d
    ",a,b,c,d);
        if(i+j==24)
             printf("%d*%d+%d*%d
    ",a,b,c,d);
        if(i-j==24)
             printf("%d*%d-%d*%d
    ",a,b,c,d); 
        if(i*j==24)
             printf("%d*%d*%d*%d
    ",a,b,c,d);
        if(j!=0&&i/j==24)
             printf("%d*%d/(%d*%d)
    ",a,b,c,d); 
        if(e+n==24)
             printf("%d+%d+(%d/%d)
    ",a,b,c,d);
         if(d!=0&&(double)(e*c)/d==24)
             printf("(%d+%d)*%d/%d
    ",a,b,c,d);
        if(c!=0&&(double)(e*d)/c==24)
             printf("(%d+%d)/(%d/%d)
    ",a,b,c,d); 
        if(d!=0&&(double)(g*c)/d==24)
             printf("(%d-%d)*%d/%d
    ",a,b,c,d);
        if(c!=0&&(double)(g*d)/c==24)
             printf("(%d-%d)/(%d/%d)
    ",a,b,c,d);
        if(i+n==24)
             printf("%d*%d+%d/%d
    ",a,b,c,d); 
        if(i-n==24)
             printf("%d*%d-%d/%d
    ",a,b,c,d);
        if(d!=0&&(double)(i*c)/d==24)
             printf("%d*%d*%d/%d
    ",a,b,c,d);
        if(c!=0&&(double)(i*d)/c==24)
             printf("%d*%d/(%d/%d)
    ",a,b,c,d);
         if(m+f==24)
             printf("%d/%d+%d+%d
    ",a,b,c,d); 
        if(b!=0&&(double)(a*f)/b==24)
             printf("%d/%d*(%d+%d)
    ",a,b,c,d);
         if(b!=0&&(double)(a*h)/b==24)
             printf("%d/%d*(%d-%d)
    ",a,b,c,d);
         if(m+j==24)
             printf("%d/%d+%d*%d
    ",a,b,c,d);     
         if(b!=0&&(double)(a*j)/b==24)
             printf("%d/%d*%d*%d
    ",a,b,c,d); 
         if(a*c/(b*d)==24)
              printf("%d/%d*%d/%d
    ",a,b,c,d);   
         if(a*(b+c+d)==24)
               printf("%d*(%d+%d+%d)
    ",a,b,c,d);
         if(a*(b+c-d)==24)
               printf("%d*(%d+%d-%d)
    ",a,b,c,d);
         if(a+((b+c)*d)==24)
               printf("%d+(%d+%d)*%d
    ",a,b,c,d);
         if(a*d*(b+c)==24)
               printf("%d*(%d+%d)*%d
    ",a,b,c,d);
         if(a+(double)(b+c)/d==24)
               printf("%d+(%d+%d)/%d
    ",a,b,c,d);
         if((double)(a*(b+c))/d==24)
               printf("%d*(%d+%d)/%d
    ",a,b,c,d);
         if((double)(a*d)/(b+c)==24)
               printf("%d/((%d+%d)/%d)
    ",a,b,c,d);
         if(a*(b-c+d)==24)
               printf("%d*(%d-%d+%d)
    ",a,b,c,d);
         if(a*(b-c-d)==24)
               printf("%d*(%d-%d-%d)
    ",a,b,c,d);
         if(a+(b-c)*d==24)
               printf("%d+(%d-%d)*%d
    ",a,b,c,d);
         if(a-(b-c)*d==24)
               printf("%d-(%d-%d)*%d
    ",a,b,c,d); 
         if(a*(b-c)*d==24)
               printf("%d*(%d-%d)*%d
    ",a,b,c,d);
         if((double)(a*(b-c))/d==24) 
               printf("%d*(%d-%d)/%d
    ",a,b,c,d); 
         if((double)(a*d)/(b-c)==24)
               printf("%d/((%d-%d)/%d)
    ",a,b,c,d);
         if(a+(b*c)+d==24)
               printf("%d+%d*%d+%d
    ",a,b,c,d);
         if(a*(b*c+d)==24)
               printf("%d*(%d*%d+%d)
    ",a,b,c,d);
         if(a+b*c-d==24)
               printf("%d+%d*%d-%d
    ",a,b,c,d);
         if(a*(b*c-d)==24)
               printf("%d*(%d*%d-%d)
    ",a,b,c,d);
         if(a+b*c*d==24)
               printf("%d+%d*%d*%d
    ",a,b,c,d);
         if(a+(double)(b*c)/d==24)
               printf("%d+%d*%d/%d
    ",a,b,c,d);
         if((double)(a*d)/(b*c)==24)
               printf("%d/(%d*%d/%d)
    ",a,b,c,d); 
         if((double)(b)/c+a+d==24)
               printf("%d+%d/%d+%d
    ",a,b,c,d);
         if(a*d+(double)(a*b)/c==24)
               printf("%d*((%d/%d)+%d)
    ",a,b,c,d);
         if((double)(a*b)/c-a*d==24)
               printf("%d*((%d/%d)-%d)
    ",a,b,c,d);
         if((double)(a*c)/(b-c*d)==24)
               printf("%d/((%d/%d)-%d)
    ",a,b,c,d);
         if(a+(double)(b*d)/c==24)
               printf("%d+%d/%d*%d
    ",a,b,c,d);
         if((double)(a*b*d)/c==24)
               printf("%d*%d/%d*%d
    ",a,b,c,d);
         if((double)(a*c)/(b*d)==24)
               printf("%d/(%d/%d*%d)
    ",a,b,c,d);
         if(((double)(a*b)/c)/d==24)
               printf("%d*%d/%d/%d
    ",a,b,c,d);
         if((double)(a*c*d)/b==24)
               printf("%d/(%d/%d/%d)
    ",a,b,c,d);
         if(a+b*(c+d)==24)
               printf("%d+%d*(%d+%d)
    ",a,b,c,d);    
         if((double)(a*(c+d))/b==24)
               printf("%d/(%d/(%d+%d))
    ",a,b,c,d);
         if(a+b*(c-d)==24)
               printf("%d+%d*(%d-%d)
    ",a,b,c,d);
         if(a-b*(c-d)==24)
               printf("%d-%d*(%d-%d)
    ",a,b,c,d);
         if(a-b/(double)(c-d)==24)
               printf("%d-%d/(%d-%d)
    ",a,b,c,d); 
         if((double)(a*(c-d))/b==24)
               printf("%d/(%d/(%d-%d))
    ",a,b,c,d);
         if(a*(b+(c*d))==24)
               printf("%d*(%d+%d*%d)
    ",a,b,c,d); 
         if(a*(b-c*d)==24)
               printf("%d*(%d-%d*%d)
    ",a,b,c,d); 
         if((double)(a*c*d)/b==24)
                printf("%d/(%d/(%d*%d))
    ",a,b,c,d);
         if(a*b+(double)(a*c)/d==24)
                printf("%d*(%d+%d/%d)
    ",a,b,c,d); 
         if(a*b-(double)(a*c)/d==24)
                printf("%d*(%d-(%d/%d))
    ",a,b,c,d);
         if((double)(a*d)/(b*d-c)==24)
                printf("%d/(%d-(%d/%d))
    ",a,b,c,d);
         if(a+(double)(b*d)/c==24)
                printf("%d+(%d/(%d/%d))
    ",a,b,c,d); 
         if((double)(a*c)/(b*d)==24)
                printf("%d/(%d/(%d/%d))
    ",a,b,c,d);    
         if((a+b+c)*d==24)
                printf("(%d+%d+%d)*%d
    ",a,b,c,d);
         if((double)(a+b+c)/d==24)
                printf("(%d+%d+%d)/%d
    ",a,b,c,d); 
         if((a+b-c)*d==24)
                printf("(%d+%d-%d)*%d
    ",a,b,c,d);
         if((double)(a+b-c)/d==24)
                printf("(%d+%d-%d)/%d
    ",a,b,c,d);
         if((a+b)*c+d==24)
                  printf("(%d+%d)*%d+%d
    ",a,b,c,d);
         if((a+b)*c-d==24)
                  printf("(%d+%d)*%d-%d
    ",a,b,c,d);
         if((double)(a+b)/c+d==24)
                   printf("(%d+%d)/%d+%d
    ",a,b,c,d);
         if((double)(a+b)/c-d==24)
                   printf("(%d+%d)/%d-%d
    ",a,b,c,d);
         if(((a+b)*d)/(double)(c)==24)
                   printf("(%d+%d)/%d*%d
    ",a,b,c,d);
         if((a-b+c)*d==24)
                   printf("(%d-%d+%d)*%d
    ",a,b,c,d); 
         if((a-b-c)*d==24)
                   printf("(%d-%d-%d)*%d
    ",a,b,c,d); 
         if((a-b)*c+d==24)
                   printf("(%d-%d)*%d+%d
    ",a,b,c,d);
         if((a-b)*c-d==24)
                   printf("(%d-%d)*%d-%d
    ",a,b,c,d);  
         if((a*b+c)*d==24)
                    printf("(%d*%d+%d)*%d
    ",a,b,c,d);
         if((double)(a*b+c)/d==24)
                    printf("(%d*%d+%d)/%d
    ",a,b,c,d); 
         if((a*b-c)*d==24)
                    printf("(%d*%d-%d)*%d
    ",a,b,c,d);
         if((double)(a*b-c)/d==24)
                    printf("(%d*%d-%d)/%d
    ",a,b,c,d); 
          if(a*b*c+d==24)
                     printf("%d*%d*%d+%d
    ",a,b,c,d); 
          if(a*b*c-d==24)
                     printf("%d*%d*%d-%d
    ",a,b,c,d); 
          if((double)(a*b)/c+d==24)
                     printf("%d*%d/%d+%d
    ",a,b,c,d);
          if((double)(a*b)/c-d==24)
                     printf("%d*%d/%d-%d
    ",a,b,c,d);  
          if(c*d+a*d/(double)(b)==24)
                      printf("((%d/%d)+%d)*%d
    ",a,b,c,d);  
          if((a+b*c)/(double)(b*d)==24)
                      printf("((%d/%d)+%d)/%d
    ",a,b,c,d);  
          if(a*d/(double)(b)-c*d==24)
                      printf("((%d/%d)-%d)*%d
    ",a,b,c,d);  
          if((a-b*c)/(double)(b*d)==24)
                      printf("((%d/%d)-%d)/%d
    ",a,b,c,d);  
          if((double)(a*c)/b+d==24)
                       printf("%d/%d*%d+%d
    ",a,b,c,d);
          if((double)(a*c)/b-d==24)
                       printf("%d/%d*%d-%d
    ",a,b,c,d);     
          if((double)(a*d)/(b*c)==24)
                        printf("%d/%d/%d*%d
    ",a,b,c,d);     
          if(a*(b+c)+d==24)
                        printf("%d*(%d+%d)+%d
    ",a,b,c,d);
          if(a*(b+c)-d==24)
                        printf("%d*(%d+%d)-%d
    ",a,b,c,d); 
          if((double)(a)/(b+c)*d==24)
                         printf("%d/(%d+%d)*%d
    ",a,b,c,d);
          if(a*(b-c)+d==24)
                          printf("%d*(%d-%d)+%d
    ",a,b,c,d);
          if(a*(b-c)-d==24)
                          printf("%d*(%d-%d)-%d
    ",a,b,c,d);
          if((a-b*c)*d==24)
                          printf("(%d-%d*%d)*%d
    ",a,b,c,d);
          if((double)(a*d)/(b*c)==24)
                          printf("%d/(%d*%d)*%d
    ",a,b,c,d);
          if((double)(a*c)/b+d==24)
                          printf("%d/(%d/%d)+%d
    ",a,b,c,d);
          if((double)(a*c)/b-d==24)
                          printf("%d/(%d/%d)-%d
    ",a,b,c,d);
          if((double)(a*c*d)/b==24)
                          printf("%d/(%d/%d)*%d
    ",a,b,c,d);
          if((double)(a*c)/(b*d)==24)
                          printf("%d/(%d/%d)/%d
    ",a,b,c,d); 
        }
        return 0;
    }




    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    游戏与必胜策略
    中国剩余定理
    中国剩余定理
    欧几里得和扩展欧几里得
    欧几里得和扩展欧几里得
    51nod 1028 大数乘法 V2
    51nod 1028 大数乘法 V2
    51nod 1029 大数除法
    51nod 1029 大数除法
    51nod 1166 大数开平方
  • 原文地址:https://www.cnblogs.com/lightspeedsmallson/p/4785888.html
Copyright © 2020-2023  润新知