一个非常有趣的数字四则运算问题
一个非常有趣的数字四则运算问题
【实际问题】
将整数1-49分成以下三组:
A.1 2 7 8 12 13 18 19 23 24 29 30 34 35
B.5 6 11 16 17 21 22 27 28 32 33 38 39 43 44 49
C.3 4 9 10 14 15 20 25 26 31 36 37 41 42 47 48
并给出以下三组数字:
(a) 2 5 3 1 2
(b) 3 4 6 2 4
(c) 6 2 4 5 3
条件:分别给(a)(b)(c)的数字间加上+-*/的四则运算符号或者括号,使(a)算得的结果在A组中,(b)的在B
组中,(c)的在C组中.不允许改变(a)(b)(c)数字的顺序.
例子:A.2+5+3+1+2=13 满足题意
B.3+4+6+2*4=21 满足题意
C.(6-2*4+5)*3=9 满足题意
求出所有这样可能的算式并写出来,从而得出A,B,C组中不可能满足上述条件的数字.
【抽象模型】
A.B.C组数字是固定的,同上.但是给出的(a)(b)(c)组是可变的,定义为
(a) a1 a2 a3 a4 a5
(b) b1 b2 b3 b4 b5
(c) c1 c2 c3 c4 c5
条件:分别给(a)(b)(c)的数字间加上+-*/的四则运算符号或者括号,使(a)算得的结果在A组中,(b)的在B
组中,(c)的在C组中.不允许改变(a)(b)(c)数字的顺序.
编写出一个程序,输入(a)(b)(c)三组数字后,求出满足上述条件的算式,求出不A,B,C组中不满足
上述条件的数字.
为加快解答本题的速度,我自己又开始做,同时将题目发布出来,希望会做的人努力完成,做对【实际问题】给100分,做对【抽象模型】给100分.编程的话最好用VB,因为我是学VB的,不过其他的都没
一个数字栈,一个操作符栈
先把所有可能的操作符+-*/排列情况遍历出来
并计算,然后每种情况在有加减处加括号
这种方法可能有点麻烦哈
也可以把所有可能的排列先预先放在文件或数据库里,然后用数字做匹配就可以了,这样代码比较简单,但工作量很大,哈