首先我使用vc提供的标准算法库,穷举四个数所有肯能的排列,然后计算所有的肯能。。。
分析:
#1,#2,#3代表运算符,a,b,c,d代表运算数,对于表达式a #1 b #2 c #3 d根据运算顺序有如下六种可能.
1,运算顺序:#1,#2,#3 (( a #1 b) #2 c) #3 d
2,运算顺序:#1,#3,#2 ( a #1 b ) #2 ( c #3 d)
3,运算顺序:#2,#3,#1 a #1 (( b #2 c ) #3 d )
4,运算顺序:#2,#1,#3 (a #1 ( b #2 c ) ) #3 d
5运算顺序:#3,#1,#2 ( a #1 b ) #2 ( c #3 d )
6运算顺序:#3,#2,#1 a #1 ( b #2 ( c #3 d))
其中运算符对应关系有64种
运算数对应关系24种。 注意该函数void calc_permutation(vector<double> queue,vector<double> to_permute);我并未在main函数中用到,问题在于该函数对于输入的数种有重复情况时会漏解,至今无法解决。。。唉。。。 听牛虻这么说,你还在你刚念高一吧?我看过你在论坛上发的帖子,真的很不错,能有这样的水平,我当初还只懂点皮毛,好好学有前途啊。。
我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光