• 大小: 4.86MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-19
  • 语言: C/C++
  • 标签: c++  stack  

资源简介

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\link.command.1.tlog

     文件       3226  2018-10-01 17:47  数据结构实习2-24点\数据结构实习2-24点\Debug\数据结构实习2-24点.tlog\link.read.1.tlog

     文件        390  2018-10-01 17:47  数据结构实习2-24点\数据结构实习2-24点\Debug\数据结构实习2-24点.tlog\link.write.1.tlog

     文件          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个文件信息

评论

共有 条评论