使用+和*获得1和2的不同值

时间:2014-03-18 10:18:25

标签: algorithm permutation

有没有办法计算通过最多A 1和B 2使用操作+和*来获得的不同值的数量?乘法优先,不允许包围。

例如,假设A = 2且B = 2。然后

1: 1 and 1*1
2: 1*2 and 1*1*2 and 2 and 1+1
3: 1+2 and 1*2 + 1
4: 1+1+2 and 2+2 and 2*2 and 1*2*2 and 1*1*2*2 and so on
5: 2*2 + 1 and 2+2+1 and 2+2+1*1
6: 1+1+2+2 and 2*2 +1+1

因此可以使用2 1和2 2获得值(1,2,3,4,5,6)。但是不能形成8,因为不允许包围值。因此答案是6(可获得的不同值的数量)。

我观察到了,

If B = 0, then the answer is A.
If A = 0, then the answer is (number of possible values for B).
* for A values have no effect. So only + should be considered for A.

从那里开始,我有点卡住了。任何帮助表示赞赏。

感谢。

0 个答案:

没有答案