#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. SpringCloud---声明式服务调用---Spring Cloud Feign

    1.概述 1.1 Spring Cloud Ribbon.Spring Cloud Hystrix的使用几乎是同时出现的,Spring Cloud提供了一个更高层次的封装这2个工具类框架:Spring ...

  2. Jmeter调试脚本之关联

    前言: Jmeter关联和loadrunner关联的区别: 1.在loadrunner中,关联函数是写在要获取变量值的页面的前面,而在就Jmeter中关联函数是要写在获取变量函数值的页面的后面 2.在 ...

  3. synchronized的可见性理解

    之前的时候看<并发编程的艺术>,书中提到dcl写法的单例模式是有问题的,有可能会导致调用者得到一个创建了一半的对象,从而导致报错.修复办法是将单例对象的引用添加volatile进行修饰,禁 ...

  4. 关于游标嵌套时@@FETCH_STATUS的值

    游标嵌套使用时,@@FETCH_STATUS的值有时会从内部游标影响到外部的游标,使外部的游标只循环一次.这时要检查游标的使用方法.要先移动游标,然后就开始判断,为真进行进行业务逻辑处理,然后移动游标 ...

  5. p2p的UDP打洞原理

    >>>>>>>>>>>>>>>>>>>>>>>>> ...

  6. 通过反射获取及调用方法(Method)

    1.获取方法使用反射获取某一个类中的方法,步骤:①找到获取方法所在类的字节码对象②找到需要被获取的方法 Class类中常用方法: public Method[] getMethods():获取包括自身 ...

  7. Python基础(3) - 数据类型:2字符串类型

    Python字符串的表示有三种方法: 1.单引号(') >>>a = 'I love python. ' 2.双引号(") >>>a = " I ...

  8. [转]Install ASP.NET MVC 4 for Visual Studio 2010

    本文转自:https://docs.microsoft.com/en-us/aspnet/mvc/mvc4

  9. [转]weui-wxss WeUI for 小程序 为微信小程序量身设计

    本文转自:https://github.com/weui/weui-wxss/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=tou ...

  10. Java - 如何进行安全发布

    首先让我简单解释一下所谓"发布". 发布(publish),使对象可以在当前作用域之外的代码中可见,如果该对象被发布,则该对象的非私有域中引用的所有实例同样也会被发布. 不仅仅是作 ...