zoukankan      html  css  js  c++  java
  • 算24

    题目

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <math.h>
    using namespace std;
    double a[5];
    bool f[5];
    const double p=0.000001;
    bool dfs(int x)//bool型容易判断有无方案
    {
        if(x==4)//第一个数钦定了,所以是选3个
        {
            for(int i=1;i<=4;i++)
               if(!f[i]&&fabs(a[i]-24.0)<p)
                  return true;
            return false;
       }
        for(int i=1;i<=4;i++){
           if(!f[i])
             for(int j=i+1;j<=4;j++)
                if(!f[j]){
                    f[j] = true;
                    double t1=a[i],t2=a[j];
                    a[i]=t1+t2;
                    if(dfs(x+1)) return true;
                    a[i]=t1-t2;
                    if(dfs(x+1)) return true;
                    a[i]=t2-t1;
                    if(dfs(x+1)) return true;
                    a[i]=t1*t2;
                    if(dfs(x+1)) return true;
                    a[i]=t1/t2;
                    if(dfs(x+1)) return true;
                    a[i]=t2/t1;
                    if(dfs(x+1)) return true;
                    a[i]=t1;
                    f[j]=false;//选6种方案
                }
        }
        return false;//没方案
    }
    int main()
    {
        while(1)
        {
           int k=0;
           memset(f,0,sizeof(f));
           for(int i=1;i<=4;i++)
           {
            scanf("%lf",&a[i]);
            if(a[i]!=0) k=1;
           }
           if(k==0) return 0;
           if(dfs(1)==1) printf("YES
    ");
           else       printf("NO
    ");       
        }
    
        return 0;
    }
  • 相关阅读:
    转 vue动画总结
    html常用字体
    GIT常用命令
    h5 编辑单选框的样式
    转载 配置vue项目
    npm audit fix 报错
    mysql驱动包
    vue仿移动端输入框
    vue过渡动画样式
    解读Scrapy框架
  • 原文地址:https://www.cnblogs.com/ht008/p/6819848.html
Copyright © 2011-2022 走看看