#include <iostream>
#include <string>
#include <cstdlib>
#include <cmath>
using namespace std; const double Threshold = 1E-;
const int CardsNumber=;
const int ResultValue = ;
double numbers[CardsNumber];
string result[CardsNumber]; bool Points24(int n)
{
if (n == )
{
if (fabs(numbers[] - ResultValue) < Threshold)
{
cout << result[] << endl;
return true;
}
else
{
return false;
}
}
for (int i = ; i < n; i++)
{
for (int j = i+; j < n; j++)
{
double a, b;
string expa, expb;
a = numbers[i];
b = numbers[j];
numbers[j] = numbers[n - ]; expa = result[i];
expb = result[j];
result[j] = result[n - ]; numbers[i] = a + b;
result[i] = "(" + expa + "+" + expb + ")";
if (Points24(n - ))
{
//cout << result[i]<<endl;
return true;
} numbers[i] = a - b;
result[i] = "(" + expa + "-" + expb + ")";
if (Points24(n - ))
{
return true;
} numbers[i] = b - a;
result[i] = "(" + expb + "-" + expa + ")";
if (Points24(n - ))
{
return true;
} numbers[i] = a * b;
result[i] = "(" + expa + "*" + expb + ")";
if (Points24(n - ))
{
return true;
} if (b)
{
numbers[i] = a/b;
result[i] = "(" + expa + "/" + expb + ")";
if (Points24(n - ))
{
return true;
}
}
if (a)
{
numbers[i] = b / a;
result[i] = "(" + expb + "/" + expa + ")";
if (Points24(n - ))
{
return true;
}
}
numbers[i] = a;
numbers[j] = b;
result[i] = expa;
result[j] = expb;
}
}
return false; }
int main()
{
int x;
for (int i = ; i < CardsNumber; i++)
{
cout << "the NO." << i << " number is: ";
cin >> x;
numbers[i] = x;
char buffer[];
itoa(x,buffer,);
result[i] = buffer;
}
if (Points24(CardsNumber))
cout << "Success" << endl;
else cout << "Fail" << endl;
return ;
}

24点-code1的更多相关文章

  1. 24 javascript best practices for beginner(only 23 finally)

    原文是英文,链接: http://net.tutsplus.com/tutorials/JavaScript-ajax/24-JavaScript-best-practices-for-beginne ...

  2. 24、Nginx缓存web服务

    通常情况下缓存是用来减少后端压力, 将压力尽可能的往前推, 减少后端压力,提高网站并发延时 1.缓存常见类型 服务端缓存 代理缓存, 获取服务端内容进行缓存 客户端浏览器缓存 Nginx代理缓存原理 ...

  3. Fedora 24中的日志管理

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

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

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

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

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

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

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

  7. [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下 ...

  8. mysql 5.6.24安装实例

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

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

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

随机推荐

  1. 【Excel】数据字典制作

    以下是设计的一种新的数据字典!!! 在Excle中新建2个sheet页,分别是:[主页]与[数据字典] 1.主页内容 E5对应的公式如下:=HYPERLINK("#'数据字典'!C" ...

  2. oracle--块信息深入解析

    一,创建 Data Block是数据库中最小的I/O单元 01,建立一个新的表空间 查看默认表空间位置 select TABLESPACE_NAME,FILE_NAME from dba_data_f ...

  3. python+requests抓取页面图片

    前言: 学完requests库后,想到可以利用python+requests爬取页面图片,想到实战一下.依照现在所学只能爬取图片在html页面的而不能爬取由JavaScript生成的图片,所以我选取饿 ...

  4. sencha touch overlay 里使用 list

    1 sencha touch 中 list 如果不设置一个固定高度或 flex : 1,  list 的内容就不会显示出来. 主要是因为 list 是可滚动的,你不设置高度 ,list 的高度默认就是 ...

  5. 开源移动端IM比较SipDroid,IMSDroid,CSipsimple,Linphone,webrtc

    最新要做一个移动端视频通话软件,大致看了下现有的开源软件 一) sipdroid1)架构sip协议栈使用JAVA实现,音频Codec使用skype的silk(Silk编解码是Skype向第三方开发人员 ...

  6. jsoup、xpath教程

    一.jsoup 1.使用JSOUP处理HTML文档 2.使用 jsoup 对 HTML 文档进行解析和操作 3.jsoup开发指南,jsoup中文使用手册,jsoup中文文档 二.xpath 1.XP ...

  7. 4、在Shell程序中的使用变量

    学习目标变量的赋值变量的访问变量的输入 12-4-1 变量的赋值在Shell编程中,所有的变量名都由字符串组成,并且不需要对变量进行声明.要赋值给一个变量,其格式如下:变量名=值.注意:等号(=)前后 ...

  8. C 标准库 - string.h

    C 标准库 - string.h This header file defines several functions to manipulate C strings and arrays. stri ...

  9. MySql的存储引擎介绍

    下面主要介绍InnoDB.MyISAM和MEMEORY三种存储引擎. InnoDB存储引擎 InnoDB遵循CNU通用公开许可(GPL)发行.InnoDB已经被一些重量级互联网公司所采用,如雅虎.Sl ...

  10. bitbucket 源代码托管

    5个人以下可以免费使用,不限制仓库的数量; 国外的注册需要开启蓝灯FQ; 1.注册账号 maanshancss w1-g1@qq.com;创建仓库; 然后拷贝现有项目 然后提交 然后push; 2.写 ...