`
coolsooner
  • 浏览: 1313163 次
文章分类
社区版块
存档分类
最新评论

算24点 解题报告

 
阅读更多

Code:
  1. /*********************利用回溯法**********************/
  2. #include<iostream>
  3. #include<string>//字符串的头文件
  4. #include<cmath>
  5. usingnamespacestd;
  6. constdoublePRECISION(1E-6);//判断是否相等
  7. constintCOUNT_OF_NUMBER(4);
  8. constintCAL_TWENTY_FOUR(24);
  9. doublenumber[COUNT_OF_NUMBER];//存放数据
  10. stringexpression[COUNT_OF_NUMBER];//用来存放表达式
  11. boolSearch(intn)
  12. {
  13. intstate=0;//标记是否有符合条件的表达式
  14. if(n==1)
  15. {
  16. if(fabs(number[0]-CAL_TWENTY_FOUR)<PRECISION)
  17. {
  18. cout<<expression[0]<<endl;
  19. returntrue;
  20. }
  21. else
  22. {
  23. returnfalse;
  24. }
  25. }
  26. for(inti=0;i<n;i++)
  27. {
  28. for(intj=i+1;j<n;j++)
  29. {
  30. doublea,b;
  31. stringexpa,expb;
  32. a=number[i];
  33. b=number[j];
  34. number[j]=number[n-1];
  35. expa=expression[i];
  36. expb=expression[j];
  37. expression[j]=expression[n-1];
  38. expression[i]='('+expa+'+'+expb+')';//加法处理
  39. number[i]=a+b;
  40. if(Search(n-1))
  41. state=1;
  42. expression[i]='('+expa+'-'+expb+')';//减法处理
  43. number[i]=a-b;
  44. if(Search(n-1))
  45. state=1;
  46. expression[i]='('+expb+'-'+expa+')';//减法处理
  47. number[i]=b-a;
  48. if(Search(n-1))
  49. state=1;
  50. expression[i]=expa+'*'+expb;//乘法处理
  51. number[i]=a*b;
  52. if(Search(n-1))
  53. state=1;
  54. if(b!=0)
  55. {
  56. expression[i]=expa+'/'+expb;//除法处理
  57. number[i]=a/b;
  58. if(Search(n-1))
  59. state=1;
  60. }
  61. if(a!=0)
  62. {
  63. expression[i]=expb+'/'+expa;//除法处理
  64. number[i]=b/a;
  65. if(Search(n-1))
  66. state=1;
  67. }
  68. //数据的赋值
  69. number[i]=a;
  70. number[j]=b;
  71. expression[i]=expa;
  72. expression[j]=expb;
  73. }
  74. }
  75. if(state==1)
  76. returntrue;
  77. else
  78. returnfalse;
  79. }
  80. intmain()
  81. {
  82. for(inti=0;i<COUNT_OF_NUMBER;i++)
  83. {
  84. charbuffer[20];
  85. intx;
  86. cin>>x;
  87. number[i]=x;
  88. itoa(x,buffer,10);//按十进制将数字转化成字符串
  89. expression[i]=buffer;
  90. }
  91. if(!Search(COUNT_OF_NUMBER))
  92. cout<<"Fail."<<endl;
  93. return0;
  94. }
分享到:
评论

相关推荐

    线性规划与网络流24题 题目-测试数据-解题报告

    线性规划与网络流24题 题目-测试数据-解题报告。读者应具备图论、最短路径、网络流的基础知识,并掌握至少一种网络最大流和最小费用最大流的算法。

    2016年中南校队选拔赛第二场解题报告

    2016中南校队选拔赛第二场解题报告,一共八道题,时间:2016.8.24.

    线性规划与网络流24题

    线性规划与网络流24题,附解题报告,详细!!!

    健康档案管理系统课程设计报告.docx

    健康档案管理系统课程设计报告 数据库 课程设计报告 课 题: 健康档案管理系统 目 录 课程设计的目的和意义…………………………………2 课程设计的目的 …………………………………………2 课程设计的意义 …………...

    ACM国际大学生程序设计竞赛实用算法

    大量的ACM国际大学生程序设计竞赛算法: 1.递推 2.polya原理及应用 3.半平面角算法 4.测试数据设计 5.动态规划 ...25.中等硬度解题报告 26.透析一类博弈问题 ............. 不想写了累死我了,反正很多

    角斗士:健身应用

    :flexed_biceps: 角斗士... 这是通过生成24小时有效的验证令牌来完成的。 导航栏导航栏包括(主页,商店,培训师,关于我们,文章)页面,(购物车,个人资料)下拉菜单和注销/登录/注册(取决于您是否登录)。 个人资

    yh线切割编程软件5555

    浙大 acm oj 解题报告 android常用代码 Android应用开发揭秘.part3(pdf) Android应用开发揭秘.part1(pdf) 哈工大 OJ 解题报告 Android应用开发揭秘.part2(pdf) 《ArcGIS API for Android 案例教程》PDF版本 ...

    服务器验收报告.doc.doc

    验收报告 "项目名称 "服务器 " "甲方 "XXXXXX科技有限公司 " "乙方 "XXXXXX有限责任公司 " "合同编号 "XXXX-X-20171212-0011-B0 " "采购启动时间 "2013年1月 "设备验收时间 "2013年01月24日 " "验收内容: " "本合同...

    leetcode计算机刷墙-leetcode:面试

    目录solutions存储解题报告,anki存放制作的anki卡片 目录 题目 分类刷题 此分类来自于 正在改造为自己习惯的格式,如果题目不是处于表格中,则说明未改造完成,里面的链接不可用 一 二 三 四 五 六 七 八 九 十 ...

    线性规划与网络流题解

    问题编号 问题名称 问题模型 转化模型 1 飞行员配对方案问题 二分图最大匹配 网络最大流 2 太空飞行计划问题 最大权闭合图 网络最小割 3 最小路径覆盖问题 有向无环图...24 骑士共存问题 二分图最大独立集 网络最小割

    java课程设计九宫格数独.doc

    二、问题分析 1、基本解法:利用1 ~ 9 的数字在每一行、每一列、每一宫都只能出现一次的规则进行解题的方法。 实际寻找解的过程为: 使用单元排除法的目的就是要在某一单元(即行,列或区块)中找到能填入某一数 ...

    数据库课程设计——健康档案管理系统.doc

    数据库 课程设计报告 课 题: 健康档案管理系统 目 录 1. 课程设计的目的和意义…………………………………2 1. 课程设计的目的 …………………………………………2 2. 课程设计的意义 ……………………………………...

    数据库课程设计——健康档案管理系统.docx

    数据库课程设计——健康档案管理系统 数据库 课程设计报告 课 题: 健康档案管理系统 目 录 课程设计的目的和意义…………………………………2 课程设计的目的 …………………………………………2 课程设计的意义 ...

    二级C语言公共基础知识

    阶段性报告 B. 需求评审 C. 总结 D. 都不正确 (18) 下述关于数据库系统的叙述中正确的是______。(A) A. 数据库系统减少了数据冗余 B. 数据库系统避免了一切冗余 C. 数据库系统中数据的一致性是指数据类型的一致 D. ...

    计算机二级C语言考试题预测

    今年9月份参加计算机二级考试的同学请转载 作者:天使~之戀 已被分享1次 评论(0) 复制链接 分享 转载 删除 下面的138道题目,在二级考试中命中率极高。 一、选择题 (1) 下面叙述正确的是(C) A. 算法的执行效率与...

    计算机二级公共基础知识

    利用计算机算法为计算机解题的过程实际上是在实施某种算法。 (1)算法的基本特征 算法一般具有4个基本特征:可行性、确定性、有穷性、拥有足够的情报。 (2)算法的基本运算和操作 算法的基本运算和操作包括:算术...

Global site tag (gtag.js) - Google Analytics