重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文为大家分享了经典24点纸牌益智游戏的具体实现方法,供大家参考,具体内容如下
创新互联建站是一家专业提供灌南企业网站建设,专注与网站设计、做网站、H5页面制作、小程序制作等业务。10年已为灌南众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
一.实验内容
24点游戏是经典的纸牌益智游戏。
常见游戏规则:
从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。
基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。
1.程序风格良好(使用自定义注释模板)
2.列出表达式无重复。
二.算法设计思路
算法描述:
1.通过rand()函数生成4个随机数
2.通过F()函数进行递归调用
3.首先将数组A中的两个数进行运算,得到结果,然后通过递归调用将结果与下一个数字运算,得到结果再通过递归调用,与最后一个数进行运算
4.递归过程中,判断是否(n==1&&A[0]==24),满足条件则输出结果。最后通过count最终知道有多少种解法
三.代码实现
#include#include #include #include #include using namespace std; int n=4; //三次运算标记值 double A[4]={0}; //存储4个数字 char oper[4]={'+','-','*','/'}; //存储运算符 string B[4]; int count=0; int F(int n){ //判断是否已完成三次运算 if(n==1){ if(A[0]==24) //判断结果是否为24 { cout<
四.测试及运行结果
五.经验归纳
这次的程序设计采用了递归调用的方式,使得问题一步步化简,即每次都是两个数字进行运算,得到结果,结果再与下一个数字进行运算,直到满足终止条件,结束递归。递归这种思想虽然很好写出,但难以理解,尤其是对一些大型的算法。通过这次的程序设计,我对递归有了更深的认识。虽然递归的执行效率很低,但是有一些问题必须使用递归解决,因此我会在以后的程序设计中经常用到递归,提高对于递归的理解能力。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。