摘要: 问题: N个1到13之间的自然数,能否通过加减乘除计算(每个数有且只能用一次)得到24? 计算24点常用的算法有:① 任取两个数,计算后,将结果放回去,再从剩下的数中任取两个,如此反复直到只剩下一个数;② 先构建前缀/后缀表达式,再计算该表达式;③ 用集合保存中间结果,集合间两两进行合并计算得到新集合(或者对给定的一个集合,对其所有的子集合进行合并计算)。 本文采用第一种方法。定义六种操作符:ADD、SUB、MUL、DIV、RSUB、RDIV,分别对应加、减、乘、除、反减和反除(反减/除:先交换两个数,再减/除)。 显然,取两个数计算时,六种计算结果可能有重复,可以对这6个结果进行去重(实 阅读全文
posted @ 2011-01-08 21:15 flyinghearts 阅读(4574) 评论(1) 推荐(1) 编辑