24点游戏递归法

24点游戏是经典的纸牌益智游戏。

常见游戏规则:

   从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。

基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。

          1.程序风格良好(使用自定义注释模板)

          2.列出表达式无重复。

算法描述:

递归调用的核心思路:

  1. 在四个数遍历选两个数;
  2. 计算该组合在此运算符下的结果;
  3. 将步骤2的结果放入原数组第i个,将最后一个放入原数组的第j个;并对字符串数组赋对应的表达式;
  4. 对新数组递归调用f,找到一个表达式则返回;
  5. 将步骤2的结果移除,并将该组合中的两个数重新放回该数组;字符串数组也同理;

C++源码如下:

#include<iostre
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值