zoukankan      html  css  js  c++  java
  • 题目:24点

    题目描述

    superwyh是一个非常疯狂的24点爱好者,空闲时总是自己拿出扑克来算24点,24点的规则很简单,就是给你4张扑克(从1至13,用A代替1,J代替11,Q代替12,K代替13)通过加减乘除来求得24,各位oier帮了superwyh好多忙,为了报答大家superwyh就和大家做个24点的游戏,superwyh给大家4张牌大家告诉superwyh能不能凑成24就行。
    [renqing PS:这道题很easy,是送分的题]

    输入格式

    4张牌的牌面(1<=n<=13)。

    输出格式

    如果能凑成输出"yes"反之输出"no"。

    因为 ((x_y)_z)_w 可表示这4个数的任意组合运算情况。

    所以我们需要枚举出每个数的出场顺序。

    第一个数一定是正数,+和*具有对称性,/和-没有对称性,所以不光要考虑(x_y)-z也要考虑z-(x_y).

    要避免search()时使开头的数为零,否则4个数就会被消化掉。

     1 #include<iostream>
     2 #include<math.h>
     3 using namespace std;
     4 
     5 double b[5];
     6 bool p=0,use[5]={0};
     7 string tool=" A234567890JQK";
     8 
     9 bool Search(int deep,double sum){
    10      if(deep==4) {if(sum<24+0.00001&&sum>24-0.00001) return 1;return 0;}
    11     
    12      for(int i=1;i<=4;++i)
    13      if(!use[i])
    14      {
    15        use[i]=1;
    16        if(Search(deep+1,sum+b[i])) return 1;
    17        if(Search(deep+1,sum-b[i])) return 1;
    18        if(Search(deep+1,b[i]-sum)) return 1;
    19        if(Search(deep+1,sum*b[i])) return 1;
    20        if(b[i]!=0&&Search(deep+1,sum/b[i])) return 1;        
    21        if(sum!=0&&Search(deep+1,b[i]/sum)) return 1;        
    22        use[i]=0;
    23                 }
    24      return 0;
    25      }
    26 
    27 int main()
    28 {
    29     string s;char a;
    30     for(int i=1;i<=4;i++)
    31     {
    32       cin>>s;
    33       if(s=="10") a='0';
    34       else a=s[0];
    35       for(int j=1;j<tool.size();++j)
    36       if(tool[j]==a) b[i]=j;
    37       if(a=='1') b[i]=1;
    38             }
    39     
    40     for(int i=1;i<=4;++i)
    41     {
    42       use[i]=1;
    43       if(Search(1,b[i])) {cout<<"yes"<<endl;return 0;}
    44       use[i]=0;
    45             }
    46     
    47     cout<<"no"<<endl;     
    48     
    49     return 0;
    50     }
  • 相关阅读:
    R.java文件介绍
    Windows CE Notification API的使用方法
    Vue.js组件的重要选项
    Vue.js如何划分组件
    细数那些年我用过的前端开发工具
    前端几个常用简单的开发手册拿走不谢
    Bootstrap相关优质项目学习清单
    前端页面实现报警器提示音效果
    人工智能面试题86问,新手找工作必备!
    人工智能面试题86问,新手找工作必备!
  • 原文地址:https://www.cnblogs.com/noip/p/2636879.html
Copyright © 2011-2022 走看看