资源简介
c++语言,通过栈实现,输入任意四个整数,输出所有可能得到24的结果

代码片段和文件信息
//西安科技大学-计算机科学与技术学院
#include
#include
#include
using namespace std;
const double PRECISION = 1E-6;
const int COUNT_OF_NUMBER = 4;
const int NUMBER_TO_BE_CAL = 24;
double number[COUNT_OF_NUMBER];
string expression[COUNT_OF_NUMBER];
bool Judgement = false; //判断是否有解。
int count = 0;
void Search(int n)
{
if (n == 1)
{
if (fabs(number[0] - NUMBER_TO_BE_CAL) <= PRECISION) //对于除法,要小心小数的精确位数
{
cout << expression[0] << “\t\t“;
Judgement = true;
count++;
if ((count % 3) == 0)
cout << endl;
}
else
{
}
}
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
double a b;
string expa expb;
a = number[i];
b = number[j];
number[j] = number[n - 1]; //递归之后,n比以前小一位,所以可以不停向前赋值
expa = expression[i];
expb = expression[j];
expression[j] = expression[n - 1]; //递归之后,n比以前小一位,所以可以不停向前赋值
expression[i] = ‘(‘ + expa + ‘+‘ + expb + ‘)‘; //加法不需要分顺序
number[i] = a + b;
Search(n - 1);
expression[i] = ‘(‘ + expa + ‘-‘ + expb + ‘)‘; //减法应该分顺序,减数以及被减数
number[i] = a - b;
Search(n - 1);
expression[i] = ‘(‘ + expb + ‘-‘ + expa + ‘)‘; //减法应该分顺序,减数以及被减数
number[i] = b - a;
Search(n - 1);
expression[i] = ‘(‘ + expa + ‘*‘ + expb + ‘)‘; //乘法不需要分顺序
number[i] = a * b;
Search(n - 1);
if (b != 0)
{
expression[i] = ‘(‘ + expa + ‘/‘ + expb + ‘)‘; //除法应该分顺序,除数以及被除数
number[i] = a / b;
Search(n - 1);
}
if (a != 0)
{
expression[i] = ‘(‘ + expb + ‘/‘ + expa + ‘)‘; //除法应该分顺序,除数以及被除数
number[i] = b / a;
Search(n - 1);
}
number[i] = a; //这4句语句是为了防止如果上面几种可能都失败了的话
number[j] = b; //就把原来的赋值撤消回去以无干扰的正确的进入到下一次
expression[i] = expa; //for循环队列中。
expression[j] = expb; //
}
}
}
int main()
{
cout << “请依次输入4个数字:\n“;
for (int i = 0; i < COUNT_OF_NUMBER; i++)
{
char buffer[20];
cout << “第“ << i + 1 << “个卡片:“;
cin >> number[i];
itoa(number[i] buffer 10); //itoa()函数的作用是把第一个参数(数值)传送到第二个参数(字符串)中去,第三个
//参数(int型)是该数值在字符串里以什么进制存放。
expression[i] = buffer;
}
cout << endl;
Search(COUNT_OF_NUMBER);
if (Judgement == true)
{
cout << “\n成功“ << endl;
cout << “所以可以计算的次数总和 = “ << count << endl;
}
else
{
cout << “失败“ << endl;
}
system(“pause“);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 34304 2018-10-13 12:35 数据结构实习2-24点\.vs\数据结构实习2-24点\v15\.suo
文件 4747264 2018-10-13 12:35 数据结构实习2-24点\.vs\数据结构实习2-24点\v15\Browse.VC.db
文件 25690112 2018-10-13 12:35 数据结构实习2-24点\.vs\数据结构实习2-24点\v15\ipch\AutoPCH\d414a9a41e2ffba6\MAIN.ipch
文件 46080 2018-10-01 17:47 数据结构实习2-24点\Debug\数据结构实习2-24点.exe
文件 338956 2018-10-01 17:47 数据结构实习2-24点\Debug\数据结构实习2-24点.ilk
文件 593920 2018-10-01 17:47 数据结构实习2-24点\Debug\数据结构实习2-24点.pdb
文件 306176 2018-10-01 18:07 数据结构实习2-24点\数据结构实习2-24点\Debug\vc141.idb
文件 372736 2018-10-01 18:07 数据结构实习2-24点\数据结构实习2-24点\Debug\vc141.pdb
文件 1982 2018-10-01 18:07 数据结构实习2-24点\数据结构实习2-24点\Debug\数据结构实习2-24点.log
文件 602 2018-10-01 18:07 数据结构实习2-24点\数据结构实习2-24点\Debug\数据结构实习2-24点.tlog\CL.command.1.tlog
文件 18596 2018-10-01 18:07 数据结构实习2-24点\数据结构实习2-24点\Debug\数据结构实习2-24点.tlog\CL.read.1.tlog
文件 308 2018-10-01 18:07 数据结构实习2-24点\数据结构实习2-24点\Debug\数据结构实习2-24点.tlog\CL.write.1.tlog
文件 1062 2018-10-01 17:47 数据结构实习2-24点\数据结构实习2-24点\Debug\数据结构实习2-24点.tlog\li
文件 3226 2018-10-01 17:47 数据结构实习2-24点\数据结构实习2-24点\Debug\数据结构实习2-24点.tlog\li
文件 390 2018-10-01 17:47 数据结构实习2-24点\数据结构实习2-24点\Debug\数据结构实习2-24点.tlog\li
文件 0 2018-10-01 18:07 数据结构实习2-24点\数据结构实习2-24点\Debug\数据结构实习2-24点.tlog\unsuccessfulbuild
文件 229 2018-10-01 18:07 数据结构实习2-24点\数据结构实习2-24点\Debug\数据结构实习2-24点.tlog\数据结构实习2-24点.lastbuildstate
文件 2761 2018-10-01 18:02 数据结构实习2-24点\数据结构实习2-24点\main.cpp
文件 18 2018-09-26 18:52 数据结构实习2-24点\数据结构实习2-24点\TGame.h
文件 5837 2018-09-27 19:18 数据结构实习2-24点\数据结构实习2-24点\数据结构实习2-24点.vcxproj
文件 826 2018-09-26 18:44 数据结构实习2-24点\数据结构实习2-24点\数据结构实习2-24点.vcxproj.filters
文件 1489 2018-09-26 18:44 数据结构实习2-24点\数据结构实习2-24点.sln
目录 0 2018-10-01 17:43 数据结构实习2-24点\.vs\数据结构实习2-24点\v15\ipch\AutoPCH\d414a9a41e2ffba6
目录 0 2018-10-01 18:07 数据结构实习2-24点\.vs\数据结构实习2-24点\v15\ipch\AutoPCH
目录 0 2018-09-26 18:49 数据结构实习2-24点\.vs\数据结构实习2-24点\v15\ipch
目录 0 2018-10-13 12:35 数据结构实习2-24点\.vs\数据结构实习2-24点\v15
目录 0 2018-10-01 17:49 数据结构实习2-24点\数据结构实习2-24点\Debug\数据结构实习2-24点.tlog
目录 0 2018-09-26 18:48 数据结构实习2-24点\.vs\数据结构实习2-24点
目录 0 2018-10-01 17:49 数据结构实习2-24点\数据结构实习2-24点\Debug
...D.H. 0 2018-09-26 18:48 数据结构实习2-24点\.vs
............此处省略6个文件信息
- 上一篇:追赶法.rar
- 下一篇:ldpc编译码c代码
相关资源
- C++获取计算机的CPU ID,硬盘序列号等
- C++头文件转delphi工具 + 源码
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
评论
共有 条评论