则是这样的:从1到33之间任意取6个数字(不重复),然后输出满足如下条件的6个数字的序列:
这6个数字之间任意+,-(不能乘除)的结果可以等于一个事先设定的值
注意,这6个数字不一定全部参加运算,也可以部分运算,只要结果等于事先设定的值即可
另外,事先设定的值是一组,可能有好几个,而且值是在运行期间由用户输入的不知道我说清楚没有有个简单的方法:将可能的序列(包括运算符)都罗列出来,运算符有+,-,&三种,其中&表示运算到此为止,
如“4+6-7&8-14+22”就表示4+6-7,只有前面三个数字参加运算了。然后用中缀或者后缀表达式就可以求值了,再一个个比较但是有如下的问题:
我初步测试了一下,运行时间可能非常长,估计有若干小时,而且期间cpu一直是100%。基数和可能的情况太大太多了请问一下有没有更好的思路呢?谢谢