读书人

有好方法吗处理这个小学生有关问题吗

发布时间: 2012-09-16 17:33:17 作者: rapoo

有好方法吗处理这个小学生问题吗?
前两天,小侄子暑假作业问我一个小学问题
说是让用1 2 3 4 5 6 7 8 9 九个数字,顺序不变, 在其中插入加号 和 减号 使得结果等于100
也不能上网。用纸和笔试了试,半天也没试出来。
还是写个程序吧。暴力试探,把所有的情况全给它暴力试一遍得啦:
一试答案还不止一个

1+2+3-4+5+6+78+9 = 100
1+2+34-5+67-8+9 = 100
1+23-4+5+6+78-9 = 100
1+23-4+56+7+8+9 = 100
12+3+4+5-6-7+89 = 100
12-3-4+5-6+7+89 = 100
12+3-4+5+67+8+9 = 100
123-4-5-6-7+8-9 = 100
123+4-5+67-89 = 100
123+45-67+8-9 = 100
123-45-67+89 = 100

有没有其他方法呢?


[解决办法]
这个问题就是依靠暴力,其实基本上剪不了枝,总共9个数,8个空,每个空有3个状态,总共3^8。还是可以枚举的。(如果让加括号,并用乘除法的话,那就麻烦多了,考虑到去重等问题,最好用逆波兰表达式来写。)

读书人网 >软件架构设计

热点推荐