计算24点-利用二叉树原理
问题描述
80年代全世界流行一种数字游戏,在中国我们把这种游戏称为“24点”。现在我们
把这个有趣的游戏推广一下:您作为游戏者将得到4个不同的自然数作为操作数,
而您的任务是对这4个操作数进行适当的算术运算,您可以使用的运算只有:+,-,*,/,
您还可以使用()来改变运算顺序。注意:
所有的中间结果必须是整数,所以一些除法运算是不允许的(例如,(2*2)/4是
合法的,2*(2/4)是不合法的)
下面我们给出一个游戏的具体例子:
3,4,5,7
计算:
Step 1:? 3.0*4.0=12.0
Step 2:? 5.0+7.0=12.0
Step 3:? 12.0+12.0=24.0
请写出代码实现
?
?输出结果:
Round 1:
Step 1:? 3.0*4.0=12.0
Step 2:? 5.0+7.0=12.0
Step 3:? 12.0+12.0=24.0
Round 2:
Step 1:? 3.0*4.0=12.0
Step 2:? 7.0+5.0=12.0
Step 3:? 12.0+12.0=24.0
Round 3:
Step 1:? 3.0+5.0=8.0
Step 2:? 7.0-4.0=3.0
Step 3:? 8.0*3.0=24.0
Round 4:
Step 1:? 3.0+5.0=8.0
Step 2:? 7.0-4.0=3.0
Step 3:? 8.0*3.0=24.0
Round 5:
Step 1:? 3.0-7.0=-4.0
Step 2:? 4.0*5.0=20.0
Step 3:? 20.0--4.0=24.0
Round 6:
Step 1:? 3.0-7.0=-4.0
Step 2:? 5.0*4.0=20.0
Step 3:? 20.0--4.0=24.0.......
很明显看出有很多是重复的,不知道哪位高手能优化一下。去除那些重复的。在这里谢谢了。