#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. 关于锚点定位,ul设置fixed后,div被覆盖一部分的问题

    例如: 问题: 刚开始的时候 .ul是正常显示的,当页面的滚动条滚动到一定的高度是 ,ul就被设置为 position:fixed:那么 点击 li相对应div就会被 固定定位的ul覆盖住一部分. 解 ...

  2. JUnit快速入门

    一.一个简单的Junit测试流程: 1.在项目中导入junit-4.7.jar包, 方法:右击项目,选择Build Path->Configure Build Path->Librarie ...

  3. 011-filter模板

    1 模板一 package ${enclosing_package}; import java.io.IOException; import javax.servlet.FilterChain; im ...

  4. Git使用总结(一):简介与基本操作

    一:简介 GIT是一个开源的分布式的版本控制系统,是由Linus 为了管理Linux内核开发而开发的一个开源的版本控制软件.相比SVN,它采用分布式版本库方式. 二:工作区,暂存区和版本库 左侧为工作 ...

  5. VS2008默认的字体居然是 新宋体

    本人还是觉得 C#就是要这样看着舒服

  6. spring 3.0 整合redis

    参考文章:https://blog.csdn.net/weixin_42184707/article/details/80361464 其中遇到了问题,第一,redis的xml配置文件中的,头部地址资 ...

  7. 巧用hover改变css样式和背景

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 入门Promise的正确姿势

    Promise是异步编程的一种解决方案,从语法上说,Promise是一个对象,从它可以获取异步操作的消息. Promise的基本用法 Promise构造函数接受一个函数作为参数,该函数的两个参数分别是 ...

  9. bzoj 4709: [Jsoi2011]柠檬

    Description Flute 很喜欢柠檬.它准备了一串用树枝串起来的贝壳,打算用一种魔法把贝壳变成柠檬.贝壳一共有 N (1 ≤ N ≤ 100,000) 只,按顺序串在树枝上.为了方便,我们从 ...

  10. Delphi下OpenGL2d绘图(02)-画点

    一.前言 图形的绘制可以使用glBegin().glEnd()之间完成,绘制的框架代码可以使用 Delphi下OpenGL2d绘图(01)-初始化 中的代码.修改的部份为 Draw 函数的内容. 二. ...