时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

周末,小Hi和小Ho都在家待着。

在收拾完房间时,小Ho偶然发现了一副扑克,于是两人考虑用这副扑克来打发时间。

小Ho:玩点什么好呢?

小Hi:两个人啊,不如来玩24点怎么样,不靠运气就靠实力的游戏。

小Ho:好啊,好啊。

<经过若干局游戏之后>

小Ho:小Hi,你说如果要写个程序来玩24点会不会很复杂啊?

小Hi:让我想想。

<过了几分钟>

小Hi:我知道了!其实很简单嘛。

提示:24点

输入

第1行:1个正整数, t,表示数据组数,2≤t≤100。

第2..t+1行:4个正整数, a,b,c,d,1≤a,b,c,d≤10。

输出

第1..t行:每行一个字符串,第i行表示第i组能否计算出24点。若能够输出"Yes",否则输出"No"。

样例输入
2
5 5 5 1
9 9 9 9
样例输出
Yes
No
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
const double EPS=1.0e-2;
bool used[];
int number[];
int oneNumber[];
char ops[];
char opType[]={'+','-','*','/','#','$'}; double cal(double x,double y,char op)
{
switch(op)
{
case '+':return x+y;
case '-':return x-y;
case '*':return x*y;
case '/':return x/y;
case '#':return y-x;
case '$':return y/x;
}
}
double calType1()
{
double x=cal((double)oneNumber[],(double)oneNumber[],ops[]);
double y=cal(x,(double)oneNumber[],ops[]);
return cal(y,(double)oneNumber[],ops[]);
}
double calType2()
{
double x=cal((double)oneNumber[],(double)oneNumber[],ops[]);
double y=cal((double)oneNumber[],(double)oneNumber[],ops[]);
return cal(x,y,ops[]);
}
bool makeOperation(int dep)
{
if(dep==)
{
if(fabs(calType1()-24.0)<EPS)
{
return true;
}
if(fabs(calType2()-24.0)<EPS)
{
return true;
}
return false;
}
for(int i=;i<;i++)
{
ops[dep]=opType[i];
if(makeOperation(dep+))
{
return true;
}
}
return false;
} bool makeNumber(int dep)
{
if(dep==)
{
return makeOperation();
}
for(int i=;i<;i++)
{
if(!used[i])
{
used[i]=true;//注意不是number[i]
oneNumber[dep]=number[i];
if(makeNumber(dep+))
{
return true;
}
used[i]=false;
}
}
return false;
}
int main()
{
int T;
cin>>T;
while(T--)
{
for(int i=;i<;i++)
{
cin>>number[i];
}
memset(used,false,sizeof(used));
if(makeNumber())
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
}
}
return ;
}

hihoCoder1304:24点的更多相关文章

  1. Fedora 24中的日志管理

    Introduction Log files are files that contain messages about the system, including the kernel, servi ...

  2. CSharpGL(24)用ComputeShader实现一个简单的图像边缘检测功能

    CSharpGL(24)用ComputeShader实现一个简单的图像边缘检测功能 效果图 这是红宝书里的例子,在这个例子中,下述功能全部登场,因此这个例子可作为使用Compute Shader的典型 ...

  3. 【趣味分享】C#实现回味童年的24点算法游戏

    一.24点游戏玩法规则效果展示 1.初始化界面 2.开始游戏界面 3.游戏超时界面 4.查看答案界面 5.答对界面 6.答错界面 7.计算表达式的验证界面 8.一副牌算完开始新一副牌界面 到这里24点 ...

  4. C#开发微信门户及应用(24)-微信小店货架信息管理

    在前面微信小店系列篇<C#开发微信门户及应用(22)-微信小店的开发和使用>里面介绍了一些微信小店的基础知识,以及<C#开发微信门户及应用(23)-微信小店商品管理接口的封装和测试& ...

  5. [MySQL Reference Manual] 24 MySQL sys框架

    24 MySQL sys框架 24 MySQL sys框架 24.1 sys框架的前提条件 24.2 使用sys框架 24.3 sys框架进度报告 24.4 sys框架的对象 24.4.1所有sys下 ...

  6. mysql 5.6.24安装实例

    安装前准备工作: 1)编辑PATH路径 vim /etc/profile PATH=/home/mysql/bin:/home/mysql/lib:$PATH export PATH 2)生效PATH ...

  7. C语言-纸牌计算24点小游戏

    C语言实现纸牌计算24点小游戏 利用系统时间设定随机种子生成4个随机数,并对4个数字之间的运算次序以及运算符号进行枚举,从而计算判断是否能得出24,以达到程序目的.程序主要功能已完成,目前还有部分细节 ...

  8. .NET开发人员必看:提高ASP.NET Web应用性能的24种方法和技巧

    那性能问题到底该如何解决?以下是应用系统发布前,作为 .NET 开发人员需要检查的点. 1.debug=「false」 当创建 ASP.NET Web应用程序,默认设置为「true」.开发过程中,设置 ...

  9. [.net 面向对象程序设计进阶] (24) 团队开发利器(三)使用SVN多分支并行开发(下)

    [.net 面向对象程序设计进阶] (24) 团队开发利器(三)使用SVN多分支并行开发(下) 本篇导读: 接上篇继续介绍SVN的高级功能,即使用分支并行开发.随着需求的不断变更,新功能的增加.特别是 ...

随机推荐

  1. ORA-01034和ORA-27101的错误

    我本机安装的数据库版本是ORACLE 11G R2,用plsql连接时候,报ora-12514如下错误: 但是在cmd里用sqlplus连接已经创建的用户时候,报如下错误: ORA-01034 - O ...

  2. gem Errno::ECONNRESET: Connection reset by peer - SSL_connect

    问题描述 在使用gem安装软件包时,会时常遇到下面的问题: ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) Errno: ...

  3. Mybatis映射配置文件Mapper.xml详解

    1.概述: MyBatis 的真正强大在于它的映射语句,也是它的魔力所在. 2.常用的属性 常用的几个属性: select元素:代表查询,类似的还有update.insert.delete id:这个 ...

  4. python爬虫-异常处理

    URLerror产生原因: 网络未连接(即不能上网) 服务器不存在 #-*-coding:utf--*- import urllib2 request=urllib2.Request('http:// ...

  5. 可编辑的div模仿文本框缓存(使用AUTOCOMPLETE属性,off是不缓存,on是缓存(默认))

    用session实现的, 1.进当前页面就从session(a)中取( sessionStorage.getItem )(不管存在不存在,后续有合理的存储和删除); 2.离开当前页时删除这个sessi ...

  6. bind的原生代码实现

    <script> function foo(p1,p2) { this.val = p1 + p2; } var bar = foo.bind(this, "p1"); ...

  7. servlet中service() doGet() doPost() 方法

    HttpServlet 里的三个方法:service(HttpServletRequest req, HttpServletResponse resp) ,doGet(HttpServletReque ...

  8. python中的一些编码问题

    声明Python源码编码方式 在程序的开始写上:# -*- coding: utf-8 -*- # -*- coding: gbk -*- 注: decode是将其它编码方式转换成unicode编码 ...

  9. DelphiXE_画图

    1.基本 DelphiXE FireMonkey 如何画图 http://www.delphitop.com/html/FireMonkey/2647.html 2. 3.

  10. 书_Delphi

    1. 有讲 坦克大战 的那本Delphi叫什么 叫做:<<Delphi深度历险>> 2.